{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# KNN——改进约会网站的配对效果\n",
    "\n",
    "**k-近邻算法**\n",
    "\n",
    "优点：精度高、对异常值不敏感、无数据输入假定\n",
    "\n",
    "缺点：计算复杂度高、空间复杂度高\n",
    "\n",
    "适用数据范围：数值型和标称型\n",
    "\n",
    "1. 收集数据：可以使用任何算法\n",
    "2. 准备数据：距离计算出数值，所以最好是结构化数据\n",
    "3. 分析数据：可以使用任何方法\n",
    "4. 训练算法：此步骤不适用于k-近邻算法（懶学习）\n",
    "5. 测试算法：计算错误率\n",
    "6. 使用算法：输入样本数据和结构化输出，运行k-近邻判断类别，应用对计算出的分类执行后续处理。\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 准备：使用Python导入数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(array([[1. , 1.1],\n",
       "        [1. , 1. ],\n",
       "        [0. , 0. ],\n",
       "        [0. , 0.1]]), ['A', 'A', 'B', 'B'])"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from numpy import *\n",
    "import operator\n",
    "\n",
    "def createDataSet():\n",
    "    group = array([[1.0,1.1], [1.0,1.0],[0,0],[0,0.1]])\n",
    "    labels = ['A', \"A\", \"B\", \"B\"]\n",
    "    return group, labels\n",
    "group, labels = createDataSet()\n",
    "group,labels"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**算法伪代码**\n",
    "\n",
    "对未知类别属性的数据集中的每个点依次执行一下操作：\n",
    "1. 计算已知类别数据集中的点与当前点之间的距离；\n",
    "2. 按照距离递增次序排序；\n",
    "3. 选取与当前点距离最小的k个点；\n",
    "4. 确定前k个点所在类别的出现频率；\n",
    "5. 返回前k个点出现频率最高的类别作为当前点的预测分类。\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "def classify0(intX, dataSet, labels ,k):\n",
    "    dataSetSize = dataSet.shape[0]\n",
    "    #1.计算距离\n",
    "    diffMat = tile(intX, (dataSetSize,1)) - dataSet\n",
    "    sqDiffMat = diffMat**2\n",
    "    sqDistance = sqDiffMat.sum(axis=1)\n",
    "    distances = sqDistance**0.5\n",
    "    #2.选择距离最小的k个点\n",
    "    sortedDistIndicies = distances.argsort()\n",
    "    classCount={}\n",
    "    for i in range(k):\n",
    "        voteIlabel = labels[sortedDistIndicies[i]]\n",
    "        classCount[voteIlabel] = classCount.get(voteIlabel, 0) + 1\n",
    "    #3.排序\n",
    "    sortedClassCount = sorted(classCount.items(), key=lambda item:item[1], reverse=True)\n",
    "    return sortedClassCount[0][0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'B'"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "classify0([0,0], group, labels, 3)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 实例：使用k-近邻算法改进约会网站的配对效果\n",
    "1. 收集数据：文本文件\n",
    "2. 准备数据：Python解析文本文件\n",
    "3. 分析数据：Matplotlib画二维扩散图\n",
    "4. 训练算法：此步骤不适用于k-近邻算法\n",
    "5. 测试算法：测试样本是已经完成分类的数据，预测与其不同，就标记为错误\n",
    "6. 使用算法：产生简单的命令行程序，输入一些特征数据判断对方是否为自己喜欢的类型。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 准备数据：从文本文件中解析数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "def file2matrix(filename):\n",
    "    #1.得到文件行数\n",
    "    with open(filename) as f:\n",
    "        arrayOLines = f.readlines()\n",
    "        numberOfLines = len(arrayOLines)\n",
    "        #2.创建返回的Numpy矩阵\n",
    "        returnMat = zeros((numberOfLines, 3))\n",
    "        classLabelVector = []\n",
    "        index = 0\n",
    "        #3.解析文件数据列表\n",
    "        for line in arrayOLines:\n",
    "            line = line.strip()\n",
    "            listFromLine = line.split('\\t')\n",
    "            returnMat[index,:] = listFromLine[0:3]\n",
    "            classLabelVector.append(int(listFromLine[-1]))\n",
    "            index += 1\n",
    "    return returnMat, classLabelVector"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(array([[4.0920000e+04, 8.3269760e+00, 9.5395200e-01],\n",
       "        [1.4488000e+04, 7.1534690e+00, 1.6739040e+00],\n",
       "        [2.6052000e+04, 1.4418710e+00, 8.0512400e-01],\n",
       "        ...,\n",
       "        [2.6575000e+04, 1.0650102e+01, 8.6662700e-01],\n",
       "        [4.8111000e+04, 9.1345280e+00, 7.2804500e-01],\n",
       "        [4.3757000e+04, 7.8826010e+00, 1.3324460e+00]]),\n",
       " [3, 2, 1, 1, 1, 1, 3, 3, 1, 3, 1, 1, 2, 1, 1, 1, 1, 1, 2, 3])"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "datingDataMat, datingLabels = file2matrix('datingTestSet2.txt')\n",
    "datingDataMat, datingLabels[:20]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 分析数据：使用Matplotlib创建散点图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#分析数据\n",
    "import matplotlib\n",
    "import matplotlib.pyplot as plt\n",
    "fig = plt.figure()\n",
    "ax = fig.add_subplot(111)\n",
    "ax.scatter(datingDataMat[:,1], datingDataMat[:,2])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXAAAAD4CAYAAAD1jb0+AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAgAElEQVR4nOydd3gUZdeH72e2bxoJoSvSRQUEK9gVu9jFLvaC+tlFBXtBLGBXXrtiRRFBbCh2xQIioiBSpLc0UrbvzPn+mE1ZdjeFJKQw93X5vmTKM2c2mzPPnOec31EigoWFhYVFy0NragMsLCwsLLYOy4FbWFhYtFAsB25hYWHRQrEcuIWFhUULxXLgFhYWFi0U+7a8WG5urnTr1m1bXtLCwsKixTN37tx8EWm35fZt6sC7devGnDlztuUlLSwsLFo8SqmVybZbIRQLCwuLForlwC0sLCxaKJYDt7CwsGihWA7cwsLCooViOXALCwuLForlwC0sLCwaEcMw2JxXjK7rDT625cAtLCwsGonVi9dy1o5XcHbXkZze6VKW/vFfg45vOXALCwuLRmLs2U9QtKGISChCSX4p9542vkHHtxy4hYWFRSORtzqfqi0XCtYXNej4lgO3sLCwaCT2HbYnLo8TAKfbwZ6HD2jQ8bdpKb2FhYXF9sS1z11GRk46f367kL779OKyR0Y06PiWA7ewsLBoJJwuB1c8en6jjW+FUCwsLCxaKJYDt7CwsGih1OjAlVI7KqW+VkotUkr9rZS6NrY9Ryn1hVJqSez/sxvfXAsLCwuLcmozA48CN4rILsBg4Cql1K7ArcAsEekNzIr9bGFhYWGxjajRgYvIehH5PfbvUmAR0AU4EXgtdthrwEmNZaSFhYWFRSJ1ioErpboBg4BfgA4ish5MJw+0T3HOZUqpOUqpOXl5efWz1sLCwsKiglo7cKVUOjAFuE5ESmp7nog8LyJ7iche7doltHSzsLCwsNhKauXAlVIOTOf9poh8ENu8USnVKba/E7CpcUy0sLCwsEhGbbJQFPASsEhEJlTZNR0oz1A/H5jW8OZZWFhYWKSiNpWY+wPnAQuUUn/Eto0GxgGTlVIXA6uA4Y1jooWFhYVFMmp04CLyA6BS7B7asOZYWFhYWNQWqxLTwsLCooViOXALCwuLForlwC0sLCxaKJYDt7CwsGihWA7cwsLCooViOXALCwuLForlwC0sLCxaKJYDt7CwsGihWA7cwsKi2aLrOsvmr2DlwtWISFOb0+ywmhpbWFg0S8KhCKOG3sOy+SsQEfY9bk9uf+d6THkmC7Bm4BYWFs2UWW98x9I/VhD0hQj5w/z66TzmzVrQ1GY1KywHbmFh0SwpLSwjGolW/KyUuc2iEsuBW1hYNEv2O3FvHE4zyqtpCrvDzsDD+jWxVc0LKwZuYWHRrBARlFLs0KczT/z4AFOf+gSHy8HpN51AVm5mU5vXrLAcuIWFRbNg5cLV3D5sHBtX5dFrUHcemHEbPQbsxI0vjGxq05otVgjFwsKiWTBm2INsWLEJMYTl81fy6EXPNrVJzR7LgVtYWDQ5IsKmVfkVP+tRnf/+WtWEFrUMLAduYWHR5Cil6DWwGza7DQCn28Huh+zWxFY1fywHbmFh0Sx44OPRDBraj9wd2nLQ8CFc+9xlTW1Ss8daxLSwsGgW/PrJPOZ/8zd61MBfEsDusDW1Sc0eawZuYWHR5GxcmceTV79IJBTF0A3mzJzPtGc+a2qzmj2WA7ewsGhyNq7MqyjaAQgHwqxatLYJLWoZWA7cwsKiyenev2vczy6vi32OGdRE1rQcLAduYWHR5GRkp/PYd/fS/6Bd6N6vKyMfO5/9T9qnqc1q9liLmBYWFs2C7v13YsI39za1GS0KawZuYWFh0UKxHLiFhYVFC8UKoVhYWDQbDMNg+rOfs+jnf9ltv5055tLDsdttVheeFKht2Wdur732kjlz5myz61lYWDQNIsK/c5fjK/azy+DeeNLctTrv6Wte4rOXvybkD6HZNAzDwOVxcdPLIzl4+H5sWLEJBDp2b79dOXWl1FwR2WvL7dYM3MLCokERER656Bm+f/9nNJtGWpaXZ+c8RJt2WTWe+8Xr3xHyhwAwdAOAkD/Eoxc+y5evf8e8rxaglGKPIwZw15SbsNm272pNKwZuYWHRoKz4axXfvTeboC+EvyRA0YbNTHlsRq3OTW/jTb5DKeZ9/RfhYIRQIMy8r/7ix6m/VjuWYRiUFJa26m72lgO3sLBoUAI+M/xRTjSi4ysJ1Orcm1+5CneaC6fHEbddDCPuZyOqs3lTScpxFv+2lNPaXcQZnS7jvB5XmaGXVojlwC0sLBqU3nt0J7dLWxwuM0Lr9ro45qLDanXuwEP78eaK5xj/9T1c+MCZdO7ZgT579eTO92/EZtMoD3trNo29jx6Ycpy7Tn6Y0iIf0UiUvNX5PHz+0/W+r+aIFQO3sLBoMDauzGPs2Y9TnFfCDn06M+iwfhx5waH03L1brcfIbJtBZtsM+u7Tm7NvO7Vi+xM/PcDbD05FRDhj1InY7Bqz3vyedju2ZcBBu1YcJyIUbSyu+NkwhA3/bf0MPBqJMuvN7ynOK2HfYXuy0y47bPVYDY3lwC0sLBqMW4+6n3VL12MYQtAXpPcePerkvKuje7+ujH7zWgD+nbuMS/rdAJgO+9hLhjLysQsBszlE/wN34e+fFhMNR3F5nOw7bM+tuqaIMPrYsSz6+V8i4SiT7n2PR7+6m5337tUg91RfrBCKhYVFgxCNRFm7ZB2GYS4ahoMR/vphUYONbxgG4VAEgFduf4dAWZBAWZCgL8T0Zz+nbLOv4th7PhzFYWcfQM/du3HCVUdx5eMXbNU11y7dwMLZiwn6QugRnaAvxHsTPmqI22kQrBm4hUU9EQki/mkQ+gRwojwng/tIlNq+/rzsDju5O+SSvyYfEbA77fTeo0eDjP3FpG957PL/oYejDD5hLyLhSPwBSlWkHQKkZXq5+eWr6n1du8OGGJVZLEpTcbK3TY01A29FiEQQidR8oEWDIUYZkn8SlI6F8GwIf4uUjEaKLkEk2tTmbXMe/GwMXfp0xul20O+Avlw7sf5t0fLWFPD4Fc8TCUYwDGHu5/PZsU9nXB4nNoeGza6R07EN//y6tAHuIJ6O3dpz8On74U5348lw483wcM6YU2s+cRtRYyWmUuplYBiwSUT6xbbdDVwK5MUOGy0in9R0MasSs3GQ6FKk5F4I/wYIOPZAZd6JcvRtatNaPUbpw+B7HQhvsceDyroL5TmlKcxqFfw0/TdmT/sNm8PGV2//SKC0MhXx6AsP5YSrjmbMcQ9SUlCCHjVweZyMeed6hhyfULBYL0SEP77+i82bStj9kF3J6ZjdoOPXhvpUYr4KPA28vsX2x0Tk0QawzaIeSHQNUnA6iA+IPYwjc5DCM6HtVJS9e5Pa1+oJTCXReQMEEP+7lgPfgrw1BTx68bOsXbKefY7dg5ETzsfhdCQc98Wkb3li5POE/GGcbgd6VK/Y5/K62OfYPfBkeAiUBdCjsYrNQJhPXviywR24UopBh/Vv0DEbihoduIh8p5Tq1vimWGwN4vsfSIAK512xw48UDIesR1DuQ5vEtoZE9DwkMAWiy8DeF+U9GaXlNLVZIKFq9vm3nR0thFFH3Mu6pRswdIOZr3yNw2GryB6pyodPf0rIbz4Yw8EImk3Dm+kh5A/RtW9n9jxyd0KBcJxjt9ltZHdss83upTlQnxj41UqpP5VSLyulUr5TKKUuU0rNUUrNycvLS3WYxdYS+gHQk++TEmTztRj+D7epSbVBwr9i5J+KsWEXjI0DMYrvQYzS5MeGZiP5h0PZMxCcBmVPIHlDkfD8bWx1Epz7AclElZzgOmJbW9OsCfiCFc4bzBnzjP99wfCOF/PwBU8TDla+yWS1zYgTqzIMw8wEiRqs+HsNEy6bSHb7LC6470ycbgeeDA9tO2dzwb1nbPP7akpqpUYYm4HPqBID7wDkY0777gM6ichFNY1jxcAbHiP/eIgurv4glYVqP7vZZEVI6EekaCQQrLLVCbauqNwPUcpZeayEkU1DQJI4dy0X1e4HlGq6tXiJLkUKTttitq2BaoNq90nzeEtoQsr9i1IKEeG09hdTUpD4u3R6nBx36eFc+bg5G1+9eC3XHnA7ekQnGtFN517FVbXtnM07a54HYNPqfEryS+m66w44XYnhmNZAqhj4Vn3zRWSjiOgiYgAvAFbzuhoQMRCjEKnulXtr8JwFylPDQREz9NBMkJL7iXfeAGHQ10FwZvzm0A8khIcqBgpAZG4jWFh7lL0XKuddcB6AGZF0gvsY80G0HTnvXz75nXce+pD53/wNmI77hVsmcaznbI7POI8Z/5uJUoqxn44xwxyKuBeXcCBccS7Ajjt3YdKyZxj7yRheWfQ4XXp1qiijt9ltdO9X2QS5/Y659BrUPc55f/XW91w64Ab+b8hoFv2ypFHvvSnZqimZUqqTiKyP/Xgy8FfDmdT6MHzvQNkTFbNIcR+JyrwbpWXWe2zlHY6EZsYyUFKkEIoBylXvazUEYvhAX5Firx8JzUJ5hlU5oRgwUhyvwEgtaLStUI6dUTkvN7UZTcake99j8iPTiISi2J12Rj52Plm5mUx/9nOi4SjRcJSJN77GrkN2Zue9ejJ53QtEo1HO7HI5xXmVv7///lrFwxc8zY0vjsRmt5GW6WW3/XYG4P4Zt3HH8Q+yfvlGeg3qxqjXrk5pz7yvFjDhsokVMfRbjriXl/95gtzOre+BWqMDV0q9DRwC5Cql1gB3AYcopQZiTo1WAJc3oo0tGsP3OpSOB6qosQU/R6KLoe10lKqfnrFSDsh+CQl8ACV3kNTZ2TqAbadajykiEP4FCc4AdJTrSHAdHBeqEH09UvYMhGYBNvCciEq7DKWZms8SWYj4XoLoUrD3QqVdjHLsCspO8pgx5naVjkRXgb4cbDuAYw+QVDH+MDiaZ3bA9sTkR6YR9JlvlnpU541732fYFUcSDlTGtG02G6v/WUuPAeb30G63M+7z27nzxIfIW10AgBjCd+/Ppteg7pxy7XFx19ihdyde+efJWtnz+6wFFc4bQGkaS+Yu3z4duIiclWTzS41gS6tDJAJlTxLnvAGImOGC0HfQABkiStlQ3uEYRj6UTcQMTwjgAOVAZT1a6+4lIgay+VoIfwdijiPBT8G+G+S8glJORF9nFq9IKRULqL7XzOPaTkdCX0PxGMz0OgOii5HgF0jWg2ie4xDn/hD+nsSHjRsiC5H840A5QSJg7wXOIRD+mfiwixs8w1C29on3EPoOKXvSDBtpueC9GOU9vUlj5cmIRqLoUR2Xp3m8HW0Na5euj3OWYFZk9tu/Lw63o2Kfruv03jO+KrPXwO7c/s71jD52LL5icw0h5A+zZN5/9bJpxz6dcXldFY0h9EiUTj061GvM5krz+ka3NvS1QIpqPPEh4eoF6euKlj4SlfMiuI4E++7gPQeV+zHKuXvtBwlOjznvKqmJ4ofIAsT3mvlj2ZPxzhswY9hrkYIzoPg2TGdb7qAN8+eSMYgEUVn3gGoDVGmzpTygZUH0HyAUGz8I0UUQXQWeM2OxfheoNEi7EJV5X4L5hn8KUnQ1RP40c+P1lVD6IFJyR+0/g23Ae+OnMyz9XE7IHMGD5z6Brqd4y2jm3Dd8QlzDBKUUIx+7gN0P2Y3/e+YSOvVoz459u3D3B6Po3LNjwvk77Nw5rlTdneZi0KH96mXT4ecdxEHDB6PZNOxOO5c8dA7ddtuxXmM2V6yemI2I6AVI3sEkL/RwQvo1aOn1LzVuSIyC4RBJkZ6n7YDW/iuMjXvHYtN1RKWjssaj3IciRjHif9d8C9HagGtoLASU5LNSXlT2C+AYaMa8taykGTVmxspgkLIkF3ehcj9C2bvV3e4G5r8FK/m/IaMrZqfuNBdXP3UxR13Q8vL1T2wzAn+VZg0ur4sZZW/UaYx/fl3ChMsmUlbk47jLjuDs0ac0SL/LSNjMH28NbdesnphNgLK1RRwDIPI7ieEChfKc0BRmVY+xOfU+KV9wqs+Lm+m0lJaFSr8MYg8wCX2LKJcZ1064rgHRZSjn3mBrm3royMLqLx36DpqBA1//3yZsdjvln0XQF2Ldso1Na9RWMuDg3Zg7cz6RUASHy8Ggw+o+e+67T2+e/2N8g9uWrMKztWGFUBoZlfUwaDlAea8/O+CGzNtRtsRXyiZHq8ZBqljIw30MW/XslwASXoAkc7S2LmbMO+l1beaCZk0oO9VmrKjm8Qe989694lqEubxO9hjachZjP3vlK87qejnndL+Sg04bzMGnD6FL704cPHwIt8X0ui22DVYIZRsgEoDAR0j4N7B1QHmGo+y1zwppcHv0dYjvVQj/Clp7VNoIlOsAAIz8E824c1LcaB3/RPR8pOAkMIpImbqYlPLkXye4j0JlPRS3sGjknwrRhcTH1hVoHVDtvq4xY0dER/IOAKMgyV4Xqt2XKFvzWMxaPGcZE298lWBZiDNvOYmDT9+vqU2qkYU//8uXk77j05dmEQ2bazsur5OnZo+lY48OvD/hIzatyOPgM/ZnryMr110Mw+Ddhz7k63d+xJvp5aIHzmLAQbtiGAYfPvUpcz7/g54Du3PuHae26AXdxiRVCMVy4NsZEvkbKTw3FqqIOV/lAc85aJmjMArOjIV8kpGGynkeCcwwFwglAqEvSL5Q6zRj20ZRbP+W3zMPKvMOlPe0Stv0TUjRBWaGjggoDfBC5h0o1z61KoyR0A9I0VWY4YnyB4EH0q9ES4/PdhURU/gr+CUoO8p9DMpRvwW01so37/7Iwxc+QzQcQaq85LjTXFz5+EV8/PxM/luwinAwgsvrZPRb17HfCXsD8NbYKbxx3xQisWYMSsE1z11Kwdoi3hv/ESF/CKfbwaCh/bn/o9ua4vaaPVYM3AIAKb4lplxYdWMA/JMQ7ykozylIZBGJqY8a2LKRwoupTOfzgK076KtJKIu390S1nYIUnpViUTSA+F+Jc+DK1h7JmWFmwUSXmjnmkQVQMtpcoHQdisoah9LSUt6fch0Abd9HfC9AZI6ZseI9E+U5O/6WJYpsvtJ8C5EAoBDfJMQzDJX5QIMsorUWDMNgwqUTiQQT37ZEhDbtM/nvr9WEY/tD/jDTn/28woF/P+WXCudtngPPXf8aOR3aVKT6hYMRfv10HoZhoGlWZLe2WJ/UdoToGyC6MsVeHQl8Bp6TwN6TuBQ/nKC8oG8g3lEHQP8P3MeBfWfMOLMHPGegct4yM0X0/NQGGYXxPwY+h/zDYPNVUPZI7E0gHMsqCUPoa2Tz/9V8o8plltgbhebDpeRhpOAkRK8MrYh/EoR+jmmYCBWpjoGPIfRZzdfYjpg7cz5Bf6IEhCfDzeWPjmDX/XauCKkAaDZFVm5Gxc9deiWu9egRnZxObaj6nEzL9FrOu45Yn9b2RLIMjwqiQBClnKi2b0PGTWDva86w0y4CrSPJQyVRCH4M0RWA27xGcBoS+sbc7dyd5F8zBfbKcIURmAnFN4OxDjO0IySGXcIQ/g2JLk99i2IghSPMHHzxxxx0AKJLzBl3Of43SNRjAQggxWOQ4Ncpr7G9UVpYhmMLkajBx+/J9OJJHH/FUXw56VuUVumJRaBD13a8M24qeWsKuOqpi8mpIvPqcDk48eqjueHFkWS2zcCT7sad5mLMO9dvs3tqLVghlFaM6AVIYCroq1GOfojrGFJKz4JZ8Qgo5UKljYC0ERW7jFgRT3K2cIRSAsXXY4S+A+8VEPyaxJCMC5VhzqZFBMoeShwnGcphqi/aU/RaDM9OoZ8ShcgiJLocZe9RvYaKlCGbr0O8I9Ayb6zZplbOoKH9cbocREIRxBCcHidXjD+/Yv9PH/6GHqn8XokhvDfhI8QQ3n1kGi/8OZ531j7PD1N/Ydn8FXTvtxMHnTYYpRRvrZrIhhV55HRqw1dv/cC1+0+mQ7f2XDF+RJN0vmlpWA68kZDoUqT0SdOhKA94TkOlXYLSvDWf3BDXD30fW8wTIIQEvKAeIqWyHwoiKxHHwGpjzHUiOB2c+0L2RCgeHcsOUaBlorIeQDkGxIz1mwuXtcIALbF8vgJ9dWrtFOUw99t7gGNArJw/FQHwv4p4T0fZW2cVX23J7tCGZ34bx+RHpqNHopxy3XF06dWpYv+Ou3Rh4c//xoVRyv8d8of4dvJsTr1+GAeeMpgDTxkcN7bT7aRr3y58/MIXvHDzJIL+EIt/W8Y/vyzhlcVP1KoIR0QI+kO4va7tbu3CcuCNgET+MVuaSaycXIrB9wISmgVt34vTu26U6xu+WKy46ozWD7KFhmf8WVB2P1J2H6IyAA84d0OlXW6W4tu7x1L86oIOJbeZeiRpo1CugYABtm7xf2jKWY1dVVFmCb5jj9SH2HuY2SvJnlMSNkNCgEq/Bin8jepn/WIupNovqIVtrZvOPTtyXYoGxZeOO4elv//H0nn/oWwKTamKBU1N03C6a86//+adnyri7HpUp3BDEXmrC+jYrZqHNaZu+KjD76Vww2badsrm4S/vZIc+net4dy0XKwbeCEjpA7HYa9XX+JAZJw5+WvP5EkYCMzCKb8MofRiJ1rHbdmgWyR1i+WJdKqKADrIZZD2EvkQKz8UIfI5KvwrYmhxdASMPSu9AIgtQ9u4JsySlHGDvU/0wKg1UNirnxepnWY69YzP0LWduDnAOQtlNHWnl3B2V/Vwstp8KY7vsLF9X0rLSePqXB/mg4BU+LHqV3nv0wBPr4t5ux1wOP++gGsfo3KsDdmflfFIMiVsITcW9wydQsK4QQzfIX1vAfWdMqNe9tDSsGXgDI2LEtLmTEUACH6M8J6Y+3yg0mxQb+bGHgA3xvYGkX1173RRjc+qqRuyYz+3qFjSrEoLiG5H2v0PaxeB7icqHgw4qC6SaTJMKglA8BsMxEM2epKpSq6GXYeb9KPcRNb69KKUg53Wk6FLQVwE2kCg4+qPaPBV/rGt/JHcWbBoCJIuJRyHyJyLS6l/NCzcUcfcpj7B8/kp22m0H7v5gFO12qKYqNwneDLOxyPhv7mHeV3+hR6IMPKxfrYpzLn7wHBb9vIQ1S9ajgFGvXY0nvaZGJbBxxSbKS1lEYMN/21fbRquQp4EREWTjrqRcLHQejsq8yYzT2nskVBcaRddBaCaJGR9uyHkLJcVmaMY5KGVhi4Tnm5kYCQuHAC5wHwXBzzGduS/JMUlIuwot41pE34gEvzF7U0YWxO6zLrPUDFS76aDlIv7JEHg/lh1jA30JyWMfTlSHBXFOVCILzAIc0cF9JJpzQNwZYpQhJeMgOAMzTOIA556ojJtRjt3ijjUCn0LxDST/nXlQ2U+gXIfU4R5bHjcccicLf1qMHjXQbBq99+jO07+M26Y2iAhFGzeTluWNc/olhaV8+OSnlBX7OHLEIfQa1L1i350nPcSczyu1WPY5dhB3T7l5m9q9LbAqMbchRtEVEPqGxHBFTApVAmY5mvJAxt1onqOAWOhk4yCSl6crwF7ZWUci4B2ByrgJCJrXM4rBuRfYesYKaP4ifqbtAe9wtMzbEWMzEvkXii5Mcb0t0Dqjtf/GvD//VCi5E9ia9nAauE+A6HKI/kvNmSc2cJ+A1uYhIJYmWHxTrPValXvTOkDOm2j2rqbzzj8FjJUkPhDcqOwXUK5947YaGwaR8mHmPBQt53+1v8UWyMltL6CsqPL+t0ZVsDEIBUJc2u8G8tYWEg1HcXtdPPb9fRVOPFAW4JnrXmHRz0vYbUgfRj5+IZ40dw2jtjysSsxtiMoYjYTnxkIg5c7RZf5bYsUrgrm/+GbElmMq7Ul5I4ZkSOz8Ks7W/wYifghOBVRl9oVrCLR5DkrHQvCzWEm6Au8FqHQzdU9pbVCufTBch0Doa2qcRRvrMEoeAvfJqWVfAWy9YpWZqZy7EZv966nHSHK84RuIlnYWBD6A4BeJ5xoboeAEJHeWmTpprCX5ZxlESu5Etft8i+3V2CJFtbCzZdNnz578+e3fRCM6NruNXoO6Nfo1l/7xH6/c/jaRUJSzR5/CwCQ64H//tJi8tQVEw+Z3O+gP8cXr31Q4cE+6h5tevDLhvO0FaxGzEVD2rqjcj8E7Amw9wN7f7GiTdGExiJQ+HjsxA7R2dbhSAAJvxQpWfJiz2SCEfgLfc2htHkG1/wWV+ymq/a9oGdclhGxU1n1g62RWWtaEfxIUnkT1zs4P6f9H9VklgerHiB8Q8EPpvRgb90RKxpDy4SABxPcK+F6h2rcKfS2ibxErTdmazQXOA2tpa2pEBAl9j1F4OUb+aRiljyJ685GQHfP2dex+yG5k5KTT/8C+3PX+TY16vbw1Bdxw0J38+sk85s1awO3DHmTpH4mdeKY//VmF8wZzjSMtu4HSXFsBlgNvJJStPVrmLWjtPkPLnRKbxaWIi0f/Mc9RCjJuJr6MvSaSzTJD4H8Dw4igNC/K1jnl4p/SckwHn3k/OIdS/VciTPUzdQWO/uZiq/dyEjNB6oMe69JTXchPzArLGhdVxZSorYIZitryc9dAuVFp59Td3C2vWDoW2Xw1hL+G6J/gexXJPxaJNI+O6ZltMxj3+R18kP8Kj8y6m+wOlYvKb4+byrD0czk+4zw+fOqTBrneXz/8E/dzNKIz5/NEzZy/fow/ThBO/r9jG8SG1oDlwLcV1cmYVtHg1jzDIOuBWCqcE3CA1om6O8MoBKbU6kilnCjPMLSc5yBrPFDz6n9yHKj0keaYGVfG9FG2dTyyujBUDHsvkDASmI4EvzTbvDn3QmVPBFtPzMiiHZz7oNq+XysVxOqQyELwvxsTzSrH1HiRkm2rvheNRPl37jJWLlpTq+N/n7WAtx6YQsgfIugL8uJtb7Lw538BM5zx5NUvctXetzDxxlcJh2ovLdxuh5y4VmwOlz1p1ktul7ZxeikdurYjIzu91tdp7Vgx8BgiYcT3MvjfNsWTHLujMq6rrBasJ8p7IRKeT2JmiAe8F8Rt0TzHI+5hphiTciOhH6H46iSj2jAXSlM4LP/rkHZmnezUPMeZcfFNe1J9zngS0i5GtC5mGqVqAzlvmw+RwBTQ11fG/xsNjZpt9oCtC5J3eJUGDwJZj4qwj/4AACAASURBVKLch6PafYoYJWYzaLW1D7J4JPgxyUNGApEFGL73UN5TG73pcqAswHUH3MH65RsxdIPDzj6A65+/otoUyZV/r0aPVn6mSilW/r2aXQf34cFznuC3z/8gEoywYuEaSgrKGPVqsu9pIv0O2IXjLj2cac98Bkqx9zGDOPSs/ROOu/WNa7j5sLsJlAVxuBzcMfmGut94K8bKQqFcAOn8mOxpfOfzZBkLW3cNQUofMePIGLH/HOA+PNY1Pvkfr4hh9tU0ksVLnVQKPyVBpaN1SK7tLUahqS5o64LSshL2G4WXQ/hb6uzEAUgHdLB1QmU/jbL3wih9DHz/28rxaoMrpj9eTVzZNcyM9/vfIPFB6kblTm+UnplG8b0QqC6jww3uoaisCRBdgJROgMgfZsaS5wxU+mUoVf83mcmPTuPVO96tkHZ1p7l49Ku72XnvXinPWfTLEm4eendF/06X18mTP42lx4CdGJZ2DqFA5YMps20GU/JerpNNpUVl6FGdNu0Sv4Pl6FGdoo2badM+C7tj+5xzpspCsUIoAOEfIbqAxJS2IFJyd4NcQimFljnKbKybfh0q/RpU23fR2kyofuYVmUvyJr2YM0jbLqnPtXVN2CRGGUbRlcimg5DCc5FN+2MUXYkR+Lyi4tN8qCdrT6aBYx+gDdWHdMool5qVgrMRw4dyH0PtyuVri2aWxTsPANdxkH491VaKqixU5mgziyVpfnzUlJhtBJT70BoWiYOmVK7vNaTgXAj/ZC4GG3mmBEPhCCSVvksdKCkoi9Pl1mwapUXV1wHssm9vrpt4Gbldcshql8mZt5xM9/7m9yqnc6XYlFLQbse6Ff4AZGSnV+u8AWx2G7ld2m63zrs6totPxHRIetJO5gAS/CKW8pcEfRVG+C+Usc7MEHEMrFdVnrJ3g/RLa3+CUUi1js9zJJQtIzEzw4NKT3ydlaJLYwU44Up52dCXpgPBgdh7g5ZtNlVINAYiv2E+92vjUMSM8+YdHeunubVOSGE+MMoXUJ3m4mL28yj7ThilT0FZDUUnUooUDAdJ1m4Nc+zA5xjRlWb4zHsWypa7lfZugXN/sO8Sy8tPnUGD72kSJxEhM18+9A24h9bLjEPP3J8Pn/qUkD+EzW7DneZm1yE1SBgAPQd2x18SQBDeHjeV3z6bxzEXD2XM29cx+tixBEqDpGenMfqt6+pln0XdadUOXIxCpGRsTH8kith3RmXcinJt2X/QjukkkoUiolB4JqKcgAEqG3JeQNlTv3Y2KPZdU5fFSxTlPhqxdYeS0VQ4eolCxnUo9+Hxh0cWxjq3J4vH6uZ/0b+oMdOjTo44CrKxxnXF6hGz6Mm+qylV6zoI5R2BsrVDQj/HHF9NGGBsqOEymyC8CcLfIb6nYiY7wHUEKvNmlK3LVlmvlAY5ryKlT4D/xVQXj2XZJNvlR0IzUfV04D1378b4b+5hxv9mkpbp5fSbT6gof6+O1+58h0BZoKJkfeHsf1n2xwr67tubd9Y+j2+zj8y2GVYzhiag1TpwkQBScFqsi0xs5hb9Bym6ArInxjlx5TkeCUwh+as1xM1WJYAUnAPtv0Opxm/Aquw7Iq6DIPQd8bM3Fzj3NbWtbTshWkcIfoRZ6XgMmmvPxMEiC6k5jLHt1kTqhqC1TQxxSNlj1N7mrXkDiEDoUyT/J8idgbJVr46XCqVcqMxRGOEfUzSN9hDfxzPubLZOSCyRnffqyc57jazTOeFQlC2XykKBMP/8upT1yzbSte/WPdgs6k/rfWQGPgK9gMS85SBSOjZ+k2OgqQ8Slz5X/mzb0jmY+tpmKXfDYSoQfoxRfAtGyQOxvpQxssaD64CYTW7Mru7HorKfMtPgNu0LRWeYC2WB16HofIyCcxCjrMr4OqJlNqjNDYcb00GlergocA5O2CrBWeZiX6MjID7El2r2XHtU5p0kpla6wNEbHINI/hm4UZ4T6n3t2hL0h5j86DQm3vQai35Zwpm3nITLk1hHEA1F+N+NrzH2nCdqnZZo0bC02iwUo2hkTFY1GRqqw59xxS0iAqHPEN8ks5O6o2+sk0yK2Hja1WgZ1zSIrWJsRgrOAH1j7Hoa4IS0i1Hec5Cii0FfgVkub5jZHTmvgr4hJlqVLK7qANfhqKwHkNIHITCdyu7wjZUJUlc0UB5U9vOIyjXj2KEkmS/KA66jIPxDTLxqKNgHQun91KqLT0OhclBZ94Dr4HplhUjkL6T0MbPnp0oDz+mo9MvMCtGC00FCVIa5vOA+ApX18DZRRNR1nWuGjOG/v1YRiXWYH/vJGAo3FDHu3CfjUgrLo45KKTwZbib+/ghrl27A7rDR/6BdsNlsbFixiQ8e/xhd1znxqmO2+Ww9HAzz0cSZ5K0p4MBTBrPbfjtv0+s3FNudmJWx+RYIfkjy12tHzIGnzqQQYzOy6UCSOkflRWXehfKc3EC2jjL7SiaUf7vB1gX0lcS/SWhg6wZaZ4j8UM3IzlgjhuVJxm5Myl/sqntQ2MB1GCrrITA2mGmc4o85r6r36jIduPiovAcbTfMgUrFsEkG1eRLlqlnnuq6IvhHxvwahH0Brg/KeA64jt5mc7ap/1nLV3rcQ9FV+7w8aPoQL7zuDC/vGL1IqTSGG+fflTnOR1iYNf4kfBHrt0YMxb13Lpf1vwFfsxxDBm+5h4h+P0Kl7NUVt1RAORZhwyXP8PGMuuV1yGPP2dXTvv1PK40WEGw6+k3/nLCMcjODyOLnnw1HsecTuW3X9pmS7SyNU3tNIXgVoNxelqnHeYIo9mav+yUrQHeA+ugGsNEMbBD8huYMNxWbeW4aBYgty0T9rGF3FutBvS+cNZtuzGtqQqSxU1gOgPEjhBTH9cx+J9xoC2Uz8PehsvfNWbP3X3gylIH6k6GpEr2FRFMzuSNE1iNROuVHZOqBljELLnY6W8zrKfVSDOO+SwlKeu+FV7jtjAr98krw2AExHXHWWrdk00rK8lG3243DGL5lVbWQcjUQpzismUBokUBZk6e/LeW/8R0QjOoYhZs1SOMrPH82tk90iwm+fzeODJz5m/CXP8f0Hv+Ar9rNy4RpuHnovejT1usbGlXksmbu8ojtQKBDmgycaRgqgudBqFzFx7AWeU2J5v+Xl1R5zVpN5e62GUJkPIMZmCP9eqeinPKjsFxusSq96Pe0a3o6U18zKSEm45jHqjAvTAaZa8I2hPLFjkzkuOxBBCi8yJXCN/EawMwW2HuDoF1sUlliOvT1mZ11sMBD/ZFSKMJoYPrOGoEINEsRzHirj+honDw2NHtW57oDbWb9sI9GIzi8z5nLH5BvY97jEhe72O+ZywpVHMeN/M7HZbTjdTs694zT0iB7nsG0OGy6Pk0BpwMxLihoVs/Fy7Pb4+7TZzYdBXXh5zFt8+NSn6FGDaCQad41AWYDNeSW07ZS8+bHL68IwqjyMNFXn6zd3Wq0DV0pB5p3gOcZsHGAUg+tQlOfEWjftVVoaKudVU3AoutDs7egc3KB/gEo5EduOsTDJlrioNnPCcyr4JlZ/TINTywYO4kNlT0SKR5sdgjAwZ9HKPF9KYymL2xi9EK3dI5VmGmXmgrQUIfb+Zspm4B2ILjYzj4xUzZbDoC9PeRkz3/5P87hyn+N/HZEyVNbdyc/RNyCBaWDkoxyDzCrdBuifuubfdeStLiQa6xwfCoT59KWvkjpwgCvGn88RIw6mOK+EnffpRVqm6fTOHnMqb94/BZtdw+FyEPQFq3TD2cJ5O+2cceuJrFi4mvnf/A1Az4HdkpbLp8IwDN579KP4WXaVbF93mos27VIvzGe3z2L4TScw5bEZ2Ow27A47F95fN2mJ5k6rjYG3JCQ4C9l8PfELcpopcqV1iKkVVnWaNrMK0XsFlN5C3R24FtPt/re+pteAG+y7A6Wxe2gGi6eqLVqH2bU6VERHNu2TIj/bBelXo6VfnnheZAFSeO4W4lWV56n236G0+Fmj4Z8GJbdjeqcw4AVbNipnMspWF4nhRAo3FHFu96sqqjDtDhvHXno4//f0JXUeq2B9ERtWbOL+MyeQvzq1to03y8sJI49i0GH9yMzNwNANeg7sVtFl/qdpv/Hn9wvp0X8njhhxcNIwkWEYHOc9J67bPQqcLgfZHbMBoXB9EZ17dqRj9/Z07tmR8+4aniB29d+ClRRu2MzOe/civU3LlKLd7hYxmwthXef7lSsoDgXZb8eudExP3qjVCMw0GzAYMZ1q5xBIu8JsXRb8GLPZgxOUgK0rKvsFc+FPT9RQrh4nqDRU28lI/qkk7wXZHLHRIG8aruPRssfX+nCj7Fkom0hCtotKQ7WbVaFUKNEVZtaTGGbYzf8KSd9UVAaqzdMo15CKTaJvQPKOIDHcZAPnELScuumLJGPyo9N49c53sdtttGmfxZOzH6ixhH1LDMPgwXOe4IepvxKNRGsVcXJ5XVz2yHmcMPKoim0fPPExL495m5A/hDvNxZHnH5LyYfLW2ClMuve9OE1wd5qLzLYZ5K3Oj8tPtzlsdOnVkef/HF/xoGgtWB15moCVmzdz+vvvEIhEMBCihsHoAw5mxO6DEo7VPEci7iMwdcPdEJ6NFF2E6QSimL+qKKSPNsu8lUL0tXW0SDMXcLPuRaL/0XKcN9S+fL86XKiMuhWxqLQrEKPAlINVTsy8uTRUm2dQWk5MpGwc+N+iUqSsOjujplRBFSQwneTeUIfwr4ix2VxUrwen33QiB5wymO/fn01WbiY2e90d3Dfv/sTPM+bGz4gxtUo69WzPmsXrE84J+UO8ef+UOAc+5bEZhPzmwyroC/HJi7NSOvCzR5/Kwtn/8svHlQuvmk1j0+r8hI9Mj+hsWJHHhv820aVXpzrfX0uk1WahNAZiFGGUvYJRPAbD9xpiFFd7/E1ffEpBwE9ZJIw/EiGs6zz4w7esLU3uOJVS5oxOKaT4RsxZX/kfSxQIQ9njVDgIrY5aHcoNnmGI73kovLhu5zY59cmksYHKBdfRSOBDDP8UjM23YhSej1H6ZGJ3nioopaFl3mGGPdo8hsp+GdXuO5QzlooW+tKMmROK2Vid81ZmSMy+RS6ykU/qDkU2MOr/oI2EI9x3+njeuO99nrn2ZS7pdwPF+XUbN291AZFQ4luFZlM88uVd9BzYDbsj8cGwZXTEvUXPSqfbQXUceMpgXN7KSlRDN9ixT+ekNU96VG+xYZKtwXLgtUTCc5G8w6DsMQi8B6XjkbxDYhrfiYR1nXkb1mNsEaLSlOLbFTWEPULfk7IqUQJIyb1I8FNIu4jUDRO2PN8Gqi0U3xJrOVb9w6d1EcvWCU0H3/NQchsEP4DwbPA9j+QfZerEJEFEEBGzc5HrYJRzUJx6pPheSRHrTkHWownxXuXcI7VaobKbErj15PcvF7D23/UEfSGCvhClhaXMfO3blMfrUZ3PXvmat8Z+wPI/zQX2PY8cgN2Z6KBFzNi4HtHjsj7K8WbGZ2xd8+wlZt54lheXx8m1z1Uv7nbkBYdw8jXHkNk2nY7d2nPf9Ft56Is7ab9j4gTmrNtOJiu3uVYcNzxWCKUWiESQopGxPOVygmYW2uaR0O77hMwUm1I4NI2QHj8j05Qi3VlDZoH4SR1gDEHgPST4kfmXU6vO8Mp03rZ2EFlTzditlRQiUUC5zo1svgHV7rOKrRL9zxRCC/8ACOIcgsockyhiVp3+eDKCX4BziyYhrqHmgrW+Zcs6D6RdiVLVz1BrhUjcM12k/H+SHSrcccJD/PndQiKhCG+NncK4z26n3wG7cMfkG7h3+ATCVXTABx7aj3tPn0DeyvyEbBQwC3Dy1hTQtnM265ZtpHD9Zu764CZEF7r07kTnnh2rNV0pxcVjz+HisfGt7V5a+Dg3D72H5fNXYOgGZ956MufffUbtP5NWQI0OXCn1MjAM2CQi/WLbcoB3gW7ACuB0kVbcujv8Mylf4SVganY794nbbNM0TtllNz5Y9HecE7dpGof3qEHJ0Lm3qSiYEn2Lh0lSw+L/LSUQmcf257xrib4Oia5E2XdC9HWmEJqUUfF5hX8y5WjbTkPZq+isO/qDvpbaZdjEenZm3hi3VSkH5LyLFN8a+67ZzJl3+pUo70UNcnuDhvanfdd2bFyxCTEEd7qboeceiK7r/PPLUgzdYJfBvbE77OStzmf+N39VFsD4w7z7yDT6HbALJfllaFr8G8ScmX9U+7Xa+F8eZ3e9gszcDEoKStFsGja7jSseHcHeRyeuB9UWt9fFkz89QP7aQjzp7u0qdFJObWbgrwJPA69X2XYrMEtEximlbo39fEvDm7d1LMrbxPerVpLj8XB0rz4JM16RqKl3omXWTlHQ2FzNTmWOlYQ7DzqUqGEwbfEiDBF6Zucw4ahj8Tqqn1EpWxfEczwEPqbhtD62oWZIS0TZKNeEl7LnY2GRLR+CAaTsGbNnafgHiK4xs4WCs6jdmxCADzHKUFp8qpuy5aJyXjTXVYwSsHVsmJl3DKfbydO/PMi3k3+irMjHXkcPJCs3k1uOuI/Fc5YRDUex2TT2OmogI+4eHjeTVkrhdJm2RMLRxDBJLecEJfnmm5ARNTCiBv+76XWOH1m/SlOlVNJemtsLtUojVEp1A2ZUmYEvBg4RkfVKqU7ANyJSo0rMtkgjfPCHb5n05x/ohoHDZsOmFHt33oGFeRvp6I1y6c5/cHjnX7AhgALPSajM0dVWVkp0FZJ/HMn/SJ2odl+gqolThqJRQrpOpqv2kqAiOuJ7wYxXSxGp9cotGgSVgWo/G6WcGJsOBSNFho/KMWfH4jPfkpTdFKQSA/DFfkXVNVa2o3LeQjkHNspt1MTzoyYx9UmznLz3oO4smbc8LkVPaYrOPTuyxxH9+eK1b1GaQinFk7PHstMuO1BSUMq53a8kUFb/CYFm1/gs9E6NDlxE+OGDX1i3bCO7H7IrfffpXe9rtzQaOo2wg4isB4g58ZQiyUqpy4DLALp2TWzx1ZD8k5/HpD//IBg1ww+R2EzhqxVmxdwGH9xY2Ivn9l/OgR1j8peBDxF9FSrntYTxfl+/jtfnz6MkFGLYDsdyfKfPsGmVC1a6uLB5jkzqvFcXF/NPfh49c3LokZ2Dy163j1opG3jPRaQU/JNBGmLRsYYmyM0N1TYWxqjt7HZrcUP6DZVVj5o3dUREimPOurwEMWTO1u19UG1eN/PAQz9B2dgUA9ggSQ/SbcHC2Yv56LnPK9IAF89ZiqHHfxfEEDatzueoCw9l7sw/yVudT89BPchsa9YvZLbNoM/ePZn/9d8J42t2zXxRMcyF37Q2afg2pw71HXHuQbWafT919Yt88fq3REJR7A4bo9++jv1O2Lsut95qafQsFBF5XkT2EpG92rWrX0VZTfywaiV6klXwqgR1B+MXVP3lhyA8D4nEfyGnLV7EuVPf46N//+Gblf9xxy+dueD7kwlE7QSidvxRO28s7cvEf0+KO09EuO3LmRz5xivc+MWnDHtrEld+PJ1oDXZtiUgYKTwLfK81kPMGsIPWvYHG2gZIKY3+FdXaQdaDaGlVFsg8Z5I8u8cRs2fLB6BhioZJFOXog/KeQvIGDMoswrI3ze8gb00hqkrXnC2ddzlKKW469B7WLd1AJBRl8a9LGHvWYxX7U/Wm7LNnT1weZ0X4JRIMs+POnXF5XWTkpNOlTyfsDhuaTePg0/fjxpeurNHmcCjCx89/SdAXQo/qhAJhJt3zXl1uu1WztTPwjUqpTlVCKJsa0qitJdfrxWmzVcy8U7HGt2WakUB4Hjh2A0A3DO759quKmTxAIBpl9sYMBk09n7buEEUhN2HDhss2l3N335tMl/kHP2PJYqb/+w8hXa9YvPx25X+8tWB+0gKelAQ/BX01yfODNSqbO5QS71A0s/t66FMSF15tYO8C4dQaHs2LMKZsQFfQVzXOJSSIch8Rt0l5zzDTNKMLqeyV6gUtJ5aznWRBW9lAXw+OvigtE8maAMU3Yk7lw4AHlAuV/WTj3Ect2G3/+CinZtPQNFWhkQLg9Dg5csTBzPjfFxXbxBAWzzG/M3//tLhC26Qqex21O9dNvJyLd7u+Yls4GKFNhyxeXvSEOY4IBesKcXqcZOaYM/r53/7NuHOfpLSojINOG8INL1wR94DQYiGcqtidyd2WHtURke2q+fHWTm+mA+fH/n0+MK1hzKkfR/bsjdNmr6FpmIEv6mCX9y7m7K+Hsaos3YxjVql02xwM4o8kzzqJip2NgTTChpk26LTZWFZYqQkxZdHfBKLx5waiUaYsSvzSV4cEPyNlo2UEcj9FdfgNlf0yOA8Hx76QcSeqw0JU1r0kfzYHIbK4TnY0PXrjOW8ADMT3FkZkaUXnd6WcqJzXUVnjzBQ/56GorPsh6+HEqpRyJAL2nhU/ap4jUO1mQvpIU3Qs41ZUu69QVY5pbDbnFTP3i/msWWJWSOZ2zuHx7+9jn2MHMfCwftwzdRR99+2N3WHD4XJw7cTLmF78Opm5iXIPnbqbb89//fAPhh4/QbI77Qw4eDdyOrWJK8pxeZx079+VyY9MY9oznxEoC5LbpW2F8/aV+Lnj+HHkry0k5A/z3fuzmfzI9PixHXbOvfM0XF4XnnQ3bq+Lyx4+L8G+Sfe+x3Heczgu7Ryeu/6VpOmMrZHapBG+DRwC5Cql1gB3AeOAyUqpi4FVwPDGNLK2eB0OXj/pNC79aCobfGVoSpFmtxHRAwQNBxo6BhoRw3xu/ZrXmaGfnM1z+3/NEYMOqxgny+3GabMR1msu3Q7pOjtmVTp/d4pYd11j4FTb8UVD2TpDdAlS9hxEqiwMO/c1haOUliTUbWBqazuovrLRZh6TMdrsKep/gcpuPvUhlbxsfXGSupKxBsRndgIqMxBAtHaQfhOa92RwH202jdY3QHSZ+ZC3dYPoEuLztZ3g3Ds+vRBQto6o9Ku2zq56suT35dx06N1EI1Ei4Si99+zBAzNuo8eAnXhgxuiK4wYP25OyzT5cXicOp+l8Dzh5X96f8BHhgPkdsdlt3D7ZTH3ccefOON2OuIYPg4ftyek3nYDNbuPhL+/kwbOfoHDjZgYd1o9Zb3xPyB9Cs9v48KlPmTjvYVweM7y0aVV+3AMx5A/zz69LEu7l3NtPY4/DB7Bh+UZ2GdyHTj3iG0L89cMiJj8yrUK18JMXZzFo6AAGD0uuttiaqHEGLiJniUgnEXGIyA4i8pKIFIjIUBHpHfv/1LJk2xARYfRXMykMmguNhggRQzigs59jd1iGXYtlnlSgEBT/N3soa8sqHZpd07h+8P54qjhdt91OO28a7ioiOR67neG79iPXW1lFd96AgXHnlR93QV3CJ4DynJSiOk8D10Fm+63CMyDyKxUaHJFfkMLTkegSKpowJ1CLWLx9F8iZhPKehpZ5HSr3M3MWqXUArSu4jjPVDGtskLwlW+lkqyUmT1svqnwmRh6U3IXhewWRAEbR1UjeEcjma6DgFPNY+y6AG1QGZnPpIag2TyLRlRjFd2Pkn4RRdCUS/q2edm09z177Cv7SAOFgBDGEf39bxjVDRvPT9N9Yu7RSs0RESG+TVuG8AXrv0YOHZt7JQcOHcPSFh/Lqv0+apevAkBP24viRR2Gz23C47Fw+fgR3vX9ThbZKr4HdeWnh40wteJUeA3YiWBYkGtEJB8IUrC/iz+8qe7127NYuLqfc5XUx4KBdk97ProP7cNjZByY4b4C1S+Mba+hRnXVLa2620RpoVcGiuevXsayoMG7mHNR1ftzQlt+GF9D/7eQCPrrAh/8s4up9KhvnXjhwD3bIyOSFeXMoC4c5sU9fRgwcxNRFC3n7rz9RwNn9d+f03frHjbX/jjsxav8DeeQns9WZIcIVe+3DMb361O1mnAeB80AIf18llBJTEsy4A/E9k7yEWwIQ+onUzrUWzi76FxSegeBAPMejMkajZSVmVUjkH7ObjpRSO62SxnitlUYYNwhlTyLh32M9OkNmtglAdKnZ5q7tNJSxDuzdUbbOSPg3pPASzM8hCtFFSOhHJP3KpJKzKe9GdAh9i4S+AmU2M1aOATWfuAW+ksTw2/rlmxh37lMYhs6NL17Jb5/N46u3vsed5ubGl67kwFP2rTi23/596TFgJ57+v5e47ej72XXIzlz91EV40j1c9vB5nHbjMB4850nevH8KP380lzFvX0d2h3jBLYfLibJpUB5yEaFwXRFXD76NwvVFHHbWATz4+e08euEzFOeVctjZB3DytcfW+V5322/nuJCJpmn0O7BvncdpibQqOdmpixZyxzdfJsSvnTYbP1x4GRdPn8yCTQUJ5yng8j33YdT+BzaIHRJdTdT/CWWhIjxpB+HyDNmqYgURA4KfIf63TSfpOhSVdh5Ky8HYdGA1Zdzl12qI360NbH1QuVPjNEAqbYwgeUemzpuuExrNQjMcAC+mM072YHKZmSueYUBMLyXvEDAS1fjAAdmvo7lqfp0XCSCF55kPCSlvbu0Cz8lmD9ZqvkMLZy9m7dIN7DqkD116deLz175mwiUTE+LV5bi9TgQzbAFmvPq1pU/Hdbe548SHmDtzPpFQBIfLzt5HD+KeqaMAuPnwe1jw/SL0iI7NbqPvvr14/Pv7K87dnFfMzFe/4c37pxDwBRFDaNs5m0goSmlhKSLmjPv8e05n+I0n1PjZ1MTvsxbw4q1vYER1RtxzRqtLM9wu5GQHduqEbiQ6rSyXmxyPh3GHH8dJ77yRkKXists5ulfDFAcYZS9A2ZPYMMgiAqXvIIHdIOfl2lV9VkEpDTzHojxJZiWqurLhLT+D+hQB6aAvQgIfo7zHJ7HRgWgZDeR3m4vzBoia8rGSoldp8c0Y4Z9RmfeY8fGUqZ4RKDoPw9YV1WY8KpbplAwpeza2yFweXzaAAASmgvtQcB2c9Lw37n+fd8Z9iKYpDEN4YMZtHHX+odhsNh6+4OmEVmdgVlRW7X1pd9pZv3xjnAOf//VfFU0gIqEof3xdTPIZlAAAIABJREFU2UFpye/L0WPZK3pUZ9kfKyr2rVy0huv2v52gPxQnPVtSYDru8jljyB9i7sz5DeLA9xjan2d/e6je47Q0WpUaYfc22Zy+Wz+8djOeZ1MKt93O2KFHoCnFLrntmHXeRXRKz8ChaXjsdlw2G1fsuQ8DOlQvqLMlEvoRo+hKjILhGKUTEH2TqUxY9hSV0qKYM6nIn0jpE6nHMvyIUVi3lXNvqlzlZDhi/9WDktsQI0VWjPvEOtiyjbEfAGor1Om0djXr0QSmI2VPYMb2q3vDioK+HCk8t/pGyP7JJF/kDSC+N5NbEdV54973CflDBMqChPwhnh81CYA+e/VMKtXqTnOx9zGDcKdVTiiikShdd+kSd1zH7u0rZv1KqYpu8ovnLKvQ8wazerNbP3MB99+5yxi5xyjKNvsSdMMjoWjcG4HT46D3nj1SfBgWtaFVzcAB7j74MA7v0ZOP/11MpsvFGbv1p2dOpVbCDllZ/HDhpfyxYT3ry8rYo1OnlF1yUmGUjAP/26wqs/HMwj35s7CQvm3u4+qBip7uZAt1IQi8g3iOQXyvm/ndjoFmZ/uyp0xZUxRo7ZCM29A8RyUZIx7lPRsJfmnGq1OmG5bjiFUXpta9rpmw2fYt7YJYX9BKh6W8ZyKB92J56/XR7W5oNFTmVUjpIxBJ3Yk9HnssX/sppOTBmABYKkceBP8kJO1yajUXkgjifxOVES9mJSKmIFp1DaqN5HkC5XK3VSnPxkhv440r1tFsGt0HdOWsW0/hwFP3/X/2zjs8iqpt478zsz2VhBZ6r9JFiqAUkW5FxYqAiooNwfKKDQv2gooKCGJDigoIKAhIFZQqvfce0sv2mfP9MZtNlt1NQvF70df7urhIdqecmew+c87z3M9980SXF9m8YgdIo6ln5Q9/kFwpiW9H/4DFbuGuF2/mk2GTOX00nXJVknl03L3ous4zPV8Nab+PTYzhhe+Maxr7yKTgrP1MWOwWOt7QhnUL/iQ3M59W3Zpx5/OlI7Ad3XOCRV8vw2q30vu+q4JUxP91/KNy4P8fkL6deE/fwrPrWvP9wYJCiUBBx2bS+OGqH6gTH038yooR4HSCDjtheV+bYRxg61ryWKQGnl+RrrmGoJZvI5FncFaIHwU5L3LeolbCAWoVRNJXIb6OUs9Dpt8O2o5idv4vwHEPwlwHmT0KOLPoawZrN1Argm8LoIDlMoSjP0Ith9TSkZkDjBRJVKMGK6LcYqRnBeSMosT7a74UJXlK8Fep5xqFYG1fBAGtAlgg5h6UuMciHvKjRyay4PMl+H1+VJPKM988RvtrjRzw1Ddm8tWoGahmlfikOD784zXKlDda+XvZbw0xaHDE2dD8Op6AVKw91saknWNYt+BPPnjwM0BSvVEV9m8+HDKTrtaoChO3Gp2a9zQZxqFtR0PGp5pVVJNK+2su5ckvHsJsMRsa66WsCx3be4IHWz2FO9+NYlJJTinDhK3vYo+5SFd9fwH+J3LgpYXH7+dYbg4VYmKJKUGbO9Pl4rkli1h0YB8mReHG2l7wt2DWwXoUXTbrKLj98NG21rzfbmGEIwlCg6s/uGco3MjcN0oVwIVQwdYNYetmzMTSeoF2kNBgYwZzUxTHDejSCbmvRDjnWUA6wb8fmfUkImlC4ViUWKSafEFsKy8cFKNJy3YNuGaD909Cg7gJHLeiWNtE3FuoyZA8B5nzPLi+J/JM3IPMfgoRNwISxxgpFX9kcwijlT5UN0dmPwP+XUSnWAqDjeK4Pcr7MHTMIFp0acLxfadoekVD6rculCvu/9T1dLmtIzlpuVRrVCWoKgigmkwhAdyZG/rwEYpg/cJNfDj0s+Cs+tD2ozji7DhzXeiajtVu4dJuhSyZfo/35aOHJ+JxejFZVOq3rsObC5/HYgv9np1NUf/XKStxOz3oukT3+snNyGPzsu206dWy1Mf4p+J/LoB/u3Uzo1csRWK0zN/dvCVPtu8Y8QMlpeSOmTPYm5GOT9fxahpTd4Nfb4yMsGTWUdiZnRT8/ffUFF79sz37cxKpFpvL001XYVYlqW4Hl5U9QaWYvMiD1A4jpeesip5CCEiajMwcAv4DAXlUP5gvQZQZa2xjboDESvhM9GzhB+8y9FPtwNoeETsUYaoV4IavPPvDiTgiO7+D8RE1c25jtoC1m2Eh59sd4RguyLwbPeZ+RGyocYKUfmT+Z+D8IiAnXMxDz/sbMn0txL+IUnYWeu77kD+R8NWQFeEwugg1v8b4EWMZOOwXLNZoq2AFzC0RCa8U60wvhODy60L16KWUHNl1HKnrVGtYhfJVy3Jg62HGPjKJ3Iw8Gl9en5Ra5TmwJXqXq+bXscfYAhzvwmJm48sboCgKx/aeoHWPFtzzxh3BfXoM7EKZComsX7iJag2q0POeLqiqyumj6WSczKJ6oyrYHGdXzLcFxlAw65dSnvUx1vy8kbXzN1K1fmV633fVOXmCXoz4WwRwr6axNyOdJLv9rPPVRbH+xDFeXvYr7iI88Ykb1lEtIZH+jZuQ6/VgN5kxB5p1tqSe4lB2VghrxadHnzkIJM1SLgHTn+xMy+beFb1wacYt3pNThntW9sKq+lGERNMVHmy4gaGNN0Y4kolz+dMItQKi7CykbydoRw2OctHWbXMLLihnWqaDey7S/TNSrXH27jRqbYh/FdyzwDUt8tjMbcFcI1DgUyl9IDcZGio5z4J/P9E7QDXI/xjp+gGSpwaVJWXGnYG8eWnvlxdyRiFt3RCxDyJ9m8G7PnBeEyAg9tGgjOyU0d+zcdEy7nxIRA/g9jtQEp4t5fkLoes6o/q9zfpfNgGCSy6vz3++eZTHr3ie/Ox8pCRok3YmhCKCrJVmnRrT7ppLiUl04HF5jRm3w0q3u67k6rs6cXzfSY7sOk7mqewQe7M2vVqGzI5nffQTE578GpPFhC3GxttLXmDZtFUc23OSy6+/jA7XR14BFaDXPV2Y++kvZKZmI6WkyRUNaXJFw1Lfj1++XMoHD07A4/RidVj4c8lWnp8xvOQd/wa46AP4wn17GbFwPrqU+HWNy6tW58OefbCXYIoQCd9u2RwSvAH8UvLK8iV8vPYPTuXnYVFUBre8lMfatCPd5SyGW3BmV6ckxqzyaLseKPG38Nm67/HoB8P2cGuF4/5kZ0u6VD5Ew8SiBSozWLuDewFSugMt2lWRehYybxy45wCa4S4f+yBCDWXPSD0T6VkG3jVGbtdxW5C6JoQaoPxdSHMHicGy2HuW+1kQiR8gzHXRtf0BY+AIUEyImPsgZij4NiL9h8E1C7RdFB9cddB2l3IsEvRTyKxHEcnT0fO/NIqKZw0VPEuMLtoyE8G3CbyrDFkEWw9QkoxcufSz849NHD8AihLlGoQDcab1Winxx7wNbFi0Ocjx3rZqF7M/mh8oeEYZuUkNan8XpEs2LdnKif2pfLBqNJ8Mm0zasXS6D+xMtzuv5NepK3l38CeYzCqaX2fU7Kdo2bVJ2HHzc5yMf+IrfB4/XrcPd76Hxzs+H+wSXfHDHzw81kn3AZ2jXk9MQgzjN7/N1pU7sdotNGpfH0UpPYHuu3fnBO+Fx+nlt1lr8Lq9YWmdvyMu6gB+PDeHRxfMC1EF/O3IIUavWMbLXa466+NleyIHLlcgJw7g13U+27CWZLuda+s3jKKHYgRum+LDLxU0qdCqYjxjet5KSpyxQjiW5yOcfhv6OPDpCr8er0XDxIIlugMjCMxFeuYEtlKR1p7g3QDyNEGWh+s7pHsBlJ0dDOLSvxeZ3j/QRu8GFKRrDjLuMZSYAmuui4U5qoCpjlGIzX07+maepci0axFl5yJsVxl3MHYQumcDZA4GoulNn22eXwffDnT/Ucg7V8VAPeCok49QYsDS3PgH6M4fIfd5Cu7/C5+6mfxmCnMml6Xv3WnYHGcoSgoH2EpmI0VCdlpuyLNN13QUVcHnjU6LbN6lMZXrpvDj2AXB10wWEyf2naRN71ZhM9YPH/wMj8uLJ7Ag+uDBCUzeFX7fXLmukPSkrulkpeUEx+dxepjz8YJiAziA1W6lVbdmxW4TDTEJoT0Tiqqgmv8ZKZSL5dscET/t2R3m6u7RNGbuilYkio51x4+y8nDkZeOZcPn9TNy4ngSbjXtahhV+AbCbzIzo0I2XOvdg2d33Mq1ffyqIGegZ96Fnj6R/fSWqsFUBTIpKTMId4LgLzdKXPzPr4dXyCZ1ZauCZB/IUoRQ9P8hcw+IrAJn1RCCXXPCg0o2fc99D+gPMAGtXjFTEfxkixvhi+7dRosCVzDXciYrubmkE4gI3/ghzoCmnJFpmNHgg93Vkamv09FuRPmMFIL2bjFSOdBoGFTIPk9nPXSNOsHtTAsvnVUbXzSBiARuY6iKSpp5141cBLr26KYqqIIRACGN23fWOjjz04SBDivWMZaXZauKe1+6gXd/WWB2Fs1Jd06nTMpynnXEyM6xV3+2M/DdMrpREzSbVMAeKp1a7BVFE/0QogoRyf63BxdAxA3HE24lJcGC1Wxg6ZiCqehF8By4ALuoZuCSc4woEXzuQlUmGy0njcuWxmaKnVLaknuLW76ejnQVlMt9rLLmGt+vAjG1bSXMVfmAFhvb4wGYtEUIYlmunbwLpxsjRKlxTbg45zdry9uZLyPf5MCsKfl0PCc2qYqJvwytBOnHnjKJRvBdzxCW1JDK9ww/uXyDh5YBi3h4ipxV0pHseInYIIvZ+pHveBTSJOEeYA0wJqZUizRy4zvhCFT0hbMiYoRBNE+ZccIYkbGSYiP73KPK6bwMyoz+UnWsUUSM8pCxWPyMn2lDK/oTUs4y/n5JsFITPA2UrJzN2zetMe2s2UtO58fG+pNSsQErNCnS9vSNvDhjLshmrUE0qbfu0YvDo26ha32jieXjsPUx/cza2GBtDPxgU0pkJ4HV7ebjtM2HdnU3PyElrfo0DWw5jdVh4a/ELTH19FicPptLplsvJSs3mo4cnYrKYMFtMPPj+3ed8rVJK8rLyccTZoxYm6zSvyZd7P2LfpkNUqF6WynWi2x/+3XBRB/Dutevy7upVFF0OW1SVbrXq0P+7qWxOPYVJUdCl5M2rutOrbmRbzjd/W35WwVsVgm616uDXdUyKwlc33MTAWd+T6/UggTI2O5OuuT64NJTZ/wkExIJx6gjc3FF7NTUq9md9qoXaScmsP36M77ZvQ5OSirGxvH11D8oqf+DPHEWM6RxlVkXgQyudRJ9Z+4yZH4bEKckzkdlPhsrQGu/y1whOnQkVEXO/8aO5cenOGcHgV8Tci1QSjGYoPQ2DraJxbuqENnDcgmKqgm6+BHx/Rt4s7mWEqRIy70PwbcdY7ZgIpwFKkB5k3sRiHqyAZqwKhZIIlgun31GlXiWGT3gg7PU5n/zC73PXgQTNp7Fu/p889OHg4PvdB3QuNp1xYMthcjPC2VNHdh0P/ux2ehjW8TmO7jmB1HRaXtWUrLRsnDkumne+hJ6Du9K6R3PSjmVQvVEV7LGGH21+dj5pxzKoWLN8UHK2OGSeymJElxc5vu8UJouJUT88QcurItcNEsrGR8zR/91xUQfwBKuNKvHx7MssLPLVTExEl5I/T50MyU+P+GU+zSumUCkuvG16R9rZdyDO27OL6du3UC+5LK9f1Z2Vg+5j2+lUFKBRucIWY6lnBb7s4ct5gUbH8pu5srbRgHFt/YaM7NiJfJ+XMjY7Qgj0tAdQxblqZJvB1tsQlHLNIipDQzgQlnaFv5qqIJKnIH1bjBSMbzuoFcDS3qDNlSqFIChsTCo6Gy1oUCoBJqMJSggLMu4ZyC2BbSH9SOcPYO8T9K4UQhjuOfabAQ9SmiDj+gDrpJQdoSLGWAU4bje43IBIGI1MvyUwsy+4FhVs16PE3GhsYy28n/qpS6PI9/qMIqZaI8DPjwC1cuTX/yIc2HwoWNADI8998kAqZSslFbNXIeLLxuH3hf99Y4vkmX+asIjDO47idRt/g9VzCicKYx/9nDIVEmnbpxVlKxd2SP8xbz0v3/IeiiqwWM28u/xlqjUo/t589PBEju05iebX8Hv9vHjDW8zMnPyPSY+UBhd1DvzJRfM5nB3a1Xg0J4df9u0JKy5KJAv2hTMhftm3hyz32bEuNCnJ83mRwK70NO74YTrpTidNylegcfkKoZxxaaRMIsMPemiqwmoykWR3FB7DX0p7M5FMqN6IxVhuxz6AzBoO+ZOj7GgBUz0oEsCDhzQ3QSnzKUr55SjJMxCxjwYCSmme6xIct4LjblAqGvsoZcHaoRT7W5G576Of7o5+6jLD/k1UKn4X/RgydxQy4zakDH3gGbleG4piQiR9DdbOxnWLQFE4GpfI1BCRNB1R/neU+KeMxihAmOoYGugx9xmSB9arEGU+QyS8Gvk4Ijb6uJUEROy9gD3Cm/bClcgFxPbVu/jo4c/46qUZYbnqllc1DeFQSynDNFCKvvfDmLkMbPAIj3YYyf7Nh0ipWYGbnyziAyvAEW8PSYPkpOeGNAgVhcfpYd0vm8LO8+pt7xt6LrluctLzeH/IuBKv89jek0HZAACfx4cr90IyrC5+XLQzcI/fz5KDByKaAUcQVwPCv6a5Hg+PLfgprBBagMpxcRzLjdZAUgiXz8eE9Wt55opO4W8qFUCJAz3CLFo4ENYOxR9cSYyoUSKlsehWBIY2eMIYg2rnmgn48Vt6cdR/LUnOVOI9S4haCLRfh4gfGblRyfsnMn+SYVlmboyIGYRImoLMfBh8vxc/bizg/AbjI6QZ/ysVwXp9QI+8OLjAPZNg2sH7G0GudHHpFOkC326kcxoi5q6ImwglAVHmI6SeC3omUjoh/WbCW9wtEDMEYTZUKKV22nA38sw3xmHrjYi9HxGlfT0Ejv6Q93H4OYTd6KA0tzKUBD3zC94AVIgZFFlpshQ4tOMom5dtp2KNclzavXnw77t15Q6e7vEKHqcXs9XEsumr+HTjW0GfyM63diDteAZzPvmF2DIxPPbpkKi6Iku+XcmkkVMN4ardJ3i80/N8c+Bjtq7YgdlqdHGaLWauebA7NZtUByAzNZsty3cgA3/HorxyAKvDQvUzHhi6poc4/EgpST+RWeI96HD9ZRzbfQK304NqVqlcL4WYhEgmKP9cXLQBXI8g0gPG17t5SgqbT57Eqxc+fYUQdKxWg2+2bGL76VRaVEzBYTZjiqBhDWBWFNpXrc5327eWmIHVgcmbN9K2ajW61AwtMAmhIOP+A9kjCf0CW0CtCtZOxR/cMQDyPuLML79EoJgbQdxTKNaA0UTsYIgdzKL9e3ly0QK82mz8mo/eVTsyuvWvmJUzHnYiFmHriRDhsz89/2vIfStwXgn+XUjXXESZjxBlxiBTO1Jse3fwvSLb+LdCznBKVj6UEY5d2ry1G1wzIEoAD45QiQMlzngklPkUmf0E6LkYD7oAhz/7KXTfJnAMhozrAh2XgXE4vzGMjcv+GKL5EnYlvp2A2UhBaakYaSwBwm48eG29kdlPBYwhil6/Ckr5Ul5zKDYt3cbIPqNBGgGyx6AuDB1j0ETnjV8UTJH4PH5SD6dxcNsR6jSvadwXIbh5xLXcPOLaEs+zdv6fIaqDUpfs23yYzcu3B4Oyz+Pjt1lrGTzaaPUf2etV9m8+DNKg61VrUJluA67k82enoms6bfu0ote9oRRg1aRy6dXN2LR0G163D5vDytV3RZbOLYrbRt6IEIKVM9dQuV4KQ8cMOifd/b8zLtoAbjebaVO5Kn8cOxJSgNSl5L2re/H04gWsO34cc4DQ//wVnblr1ndkuV24/H5m79xBgs2GJiNTzSyqSutKlZm3exfOIibE0awQ/LrOfxYvYHSXq2lUrnyQ7w2g2PsihQWZ+3ZAkc9szHzjnmL5ocO8smIph7OzqJlYhuev7EL7qoXeiSJmENK3CTwrMIKHsYxX4h5Bib03bNxHsrN5ZH4oN/7no9VJcbTi8SZnWnjJiLrhUs+A3DcInbVrgAuZNQJRfhXYuoF7EZFn9sU98vycu8VZAYWthI7LKMp80SCs7ZHJc+F0ZwrHHrgu51TwbgwN3gD4jBl8/mREXKHTuvTtNhxzwMhve9djPOJVY39TCzDXQ9j7grm1IVLlnk/4ffRA3ptIx43BnH5p8flz34bksX/8eAGDRt+GPcZGXFIMqkkNphY0v0ZMvIPUw6dZ+NVyFFWh5+AuJJZLICcjl6mvzyQzNYfuAzrRvPMlIeep2aQaVrslKG7l8/ixxVixOay48owJh6IIylUx8ueaprF348HgxEvXdNxODzePuJZ+j/dF82sh1m1F8cL3I/jmle85sOUwrXu2oO/9Vxd7D3RdRwjB7c/24/Zn+53V/fsn4aIN4ADvdu/JHTNncDw3F0UIdCkZ06M3lePj+er6mziak026y0WD5LK8vXolac78YNu70+9Dc+qY1MgzcE1KWlRMYVb/23lr1Qo2nzpFnaQkBjVvyeO//Ey2JzxwnXY6GbZgHl5d59ZLmvL8FZ0L9ZJt3RG27kjpBcwIIdh44jgP/PRjMNjuzkjnnjkz+e6mW2lUzph9SVTSLW8Sb9+Pxf87CCvYrg7rsCzAj7t3op2RVnJrJqbubxgewEUMRLLjci8NaKVEOoMXfFuMQp50GukQYTYKfUpiIKd/rjzpkqBA8rcI3xZkzuvRzxPloVws3LOI3NzjAv8mIt8ML7jnQdwwpNSNmbR7AUag1yMfz78DkfAiwmzQ6qRnVZRjAwjwbQPL2fmlFjViACNQ5mXmY4+xcet/bmDlzDXkZzvR/Bo9B3cFJPc2HY4zx3gofv3yd0zaMYanrhrFqUOn8fs0VsxYzctznqZFl0Kmxg2P9Wb777tZPXttwIhB8tjlz9Lhhjasmr0WIcARZ+exTw3LOFVVSUpJJP24kf4QQhCfbEx0FEVBsUQvuVntVga9eluJ167rOmMenMCCSb9ispgY+sEgeg4qWfjtn4qLOoCXj4llwe13s/10KjkeDy1SUkL43lXiE6gSbzQBrDx8KMxpx6NrNCpXnoPZWWS6C2d0FkWhTeUqQZ3wcX2uC9lvTI8+DJk7C0+ELsy8gF3bjG1baV+lGt1q1wl5v+hs6tP1a0JmymDoukzYsI73uvdi8f59/OfXX8j1eFCEYHCLSxnWtn2xy0Cv3x+REunTA07y+DAKeCajVT1iCslbTBAUID0IYUeUGWe0rvt3gVLesHjLGnyeTMOC+xMhPaMkIkyNEObGyNyPo7NhZPGSh1J6DVsy4UCYahgv+rYSXeq1uAsyVkTSOdXgopcox+tFOr8uLHgKC9HpnbrxwD5LtLyqCTv/KHRvV0wKa37aQO/7ulGmQiKTdoxh97p9zBu/iB8/XsDssfND8tBel5eX+r3NyYOngzN1j8vLgs+XhARwk9nEi98/weTnpzLtzVlBg4bfZq1hzG+vYo+1El82no8fncSmpduo0bgaT05+iGf7vo7P40NKycFth1n09TKuuqPklEhpsPjrFSz+egWaX0fzexn78CQuubxBkMf+v4aLmoUCxlO8cfkKtKtardhmnWoJCWFFTFUIGpYrx9p7H+CJdpdTIyGRKvHx3H9pGz7tHT0HWDcpmTirFaWYQOr0+/h+57Zix348QoFUl5LjuTnsy0jn4flzSXM68WgaLr+fcevX8MWmSOJWhehRtx6WM2hSZkWhd9364LgTLJ0g5j5E2QUISxS5TUt7ogctDYpocAhTNYStG8LSLPAwOJ/obUOU+Qzs/YjIytAzkFmPGu315mLEisx1or6l53+JTG2DzLgdmXYN+ukeSN8Og8pHtFRFgeLhmVALbcycn1M6IS0d/EcKf7V2JarGrogJ0inPBjUaVwvpmDRbTIgi2iA2hxVnjotVs9ega3pES7WD246EMDgAEstH7ojMOJkVYuBgMqt4nB4q10nh40cnsXzGak4fSWfDos2Mf+LLkON6XT6+e3fuWV9jNBzafiQkL2+ymP5nHOgj4aIP4KXFg63bYj2jdd1qMjG45aUoQvBA67b8OmAwy+++l8fatg/btgAHsjLp8c0XZLlcUdkrYOTK3T4/ORFSLQXoVqsO1jOCrU010a1WHaZt24LvjBm+T9cZvXIZed5oxUNoWLYcw9t1wKqqxFks2E1mGpevwH869kaJfxolaTxK3CMItUL0sZuqgf06woOoHWIfDyl6SqkhveuQnpVItRrnZc1mboCwtkXEvwCO2wj/+HmN/LJzGiL2ASLbtNkQsUMjHl53zobcd0DmG/9wB6zMbgfbVRHOB2AF23VGETIswGvg/BY9bzzo4WbYkWEBS6Fmh1DLQdzwwLUUTAhUwI5IeCfKCql4tLvmUspXK4ct1oYt1kaZColceXMoTfTE/lNhqZbCQRm56zNx8xORvSm73tYRq924N6pJxR5np3bzGgDBwiMEvDE3HwoRmhLCcOy5UGh6ZWOsRWiQml8LjuV/Ef8IR57juTlICcdyc3jjt+Xsz8ykYdlyPNPxSi4pHz2QRcKD837kl/17iw3eBbCbTOhS8sCll/FIm/Zh7+d5vdw4fQrHc3PI9/mIMZupkViG6f3689LyJUzbtiXicZ/t2IlBLYp3Mc9wOfnz5ElSYmNpWO7s2QxS6kZawDkBtHQwVUPEPowoIqAkPauRWY8R9HyUPiMQuhdTyOYoLWwQ9wRKjKGHraffGl3xT62JUm4Bumse5DxXZNAaWK4ERQG1KsJ+M8JUNfi2ntoZ9GMRDmiF2CEIU2Nk9mOAYmilI8ByKaLMJ0bXZMZg8G+OcF22QDPOztJdp+1aUGwIWzcwtzbkFrzrkfmTDZlfc1NEzMDC9M45wO30sPrHdUhdp23fS3HEhT6M9206yKPtRwYLkGabCXuMnbzMPBq2q48j3s6GRZuDxsRlKiYw/fhnUc+3fuEm5nz6C/HJcdz14s0kVUwk81QWD7Z6ioyThb0a5aokc+sz1zNu+JeG7grw3vKXgjRVuWStAAAgAElEQVTD84WUkh8++InZH/6MPdbGQx8OpknH0kvL/l0RzZHnbx3Aj+XmMGTOrECnpqBaQgLj+1xH9cTEcz5mu4njOJUfxWghCuwmMx/07E3XmuE6Gj5NY+H+fezJSKNB2XJ0rVkbk6Kw8vAhBsz6LixUVI/Npkv1ZJ7tPBihFNMg8hdD+g8j0/oSnjawQ8xAQ/TJv90ISCUEcr9fkHrUzsyvBzPk7SFYbBb001cZ/PNIEIkoFdYY45Be8G5Eaocg5w2MHL8bYyWgQsLrKPZehgHDqWLa8i0dUJImIfV88PxqFGMtrQqLjVIiU5tH0VVRwNLBkOiNmAMv4B5LjMJmYAUl7IZFW+LHCHFhyk0Hth5m5Q9/EFcmlp73dCm25Xzt/I1Mfn4aiqpwz2u306xT4+B7WaezGdn7Nfas348j3k71RlVp1qkR1z7Uk3fv/YSdf+yhxiXVeGbKYyiK4OeJi9H8Ot0HdmbRV8v4atQM/L7w1FCFGuX4ev/HHN93klOHTlO7eY0L5l+5b9NBnu7+MrmZ+SRVTOStxS/8o3RNisM/LoBLKen+9WT2ZWYEv7ICqBqfwJIBg8+ZD3rb99P5/diRkjc8A51r1GTiNTeUenspJVdMnhBsJKoWk8111XezIb0iSVY3d9fbQdMq1yDihp3TMvt8oee8Cs4pRGxJVyqhlF9qBL1TDSlOulXXYfH3Zfh4ZGX8mp2r77qSRz+5Dz3rKXD/SMT8cCDYFsCwi+sepR3diii/EkQ8MrVlIHVyJlSw90NJeDnqOEvzAMDeL+B7GVh9iERIeBkh4pDetRH5/MbKYzhKzICo5y4t9m48wLArnsPj8mK2mqneqAofrh59Xu4yE57+mtkfzcfj9GCxmXEkOMjLNBzlVZNCzSbVSDuWSW5mnpHbLpDBLyZsLPBPOyu97tLirjoPcWK/YRoiFEG9VrX56I/XLvh5LkZEC+B/2xz49tOpIcEbjM9UqjOfbadTS32c/ZkZDP/lZ/p++xUvL1vCwOYtMBUT/M/MaRdAO6NQpOk620+nsj8zMmdZCMFHva7BqqrYFB8pjjwm7GrOylNVmXu4Nrct6cnC3QuR+Z+W+louKHzbiaonop8AAjZu5shyuwXISjPxzmNVceapeF1eNiwy0kZGe3mkoqINEftIyCvSvzfAr48EAe6Fxljs/TH0Wc6EuVhPSeNaAg4+EWEDSxsUey9E+VWG1Gvy94hyS1GsVyAsLcCzmMizczc4vw571evxsW3VLg5sKZ3EMcDsj+fjzvcgdYnX5WXvxgPcXOle3hvyKT5vKbVfzsCSKSuDRUGv20fWqewg20Tz6xzYchi302OkWgo+4iXM+dKOpvPxsM/54KHPOLTjaNTtVs78g4fb/ocnrhrF3o0HShxr2rHC75LUJScPlv57/k/FRU0jLA7z9uyO+Dnya3pYcTAadqenccP0KXgC1Lxd6Wl8sXlj1Py3KgSDmrdi8qYNuIrQA22qCavJxMhfF9KjTl1izRaGzJuN0+dDl5JaiWWYdO0NlI8JTYk0q1CRb2+8hR82jeX7veVxBdx6dBTcmsLLf7alS5UJiJh7Q/waI0HqTqRrmmHeiw62PgjHbeeehjHVCliKRbiXSqEIkYj/DzL9NsJTLUY34vtP1Qs2dqhmlRqXVDXoiNoxQ7PEuzKQtlANGmHCy0HbsSC8v0ceBwAekIYZh4h7DOnfjubagJQeNJ+hh30q/U6qVyyZ7SHiRhia6iGBWICwIhw3G78JFcwRjlVcc9EZejh5Wfk8dNnTZJzKQtd0utzWkWHjhpS4arQ5rCiqUugNqUty0nJZ/PUKHPEOhrxVfHdqJCSlJJJ2LD3o1KOajf4Aza+hKILkyklkp+aU+ngVapTj/pZPkp/tRNd1Fn25jHF/vk1KrdBa1Obl23n9zg+CDUmPd3qBybvGkFQxetdr886N+XPJNnweHxa7hdbdm0fd9n8Ff9sZ+L7MyKwAHUmTCqFNMH5d50RuLp5A0N2XkcHNM6bSe8qXOH2+IK/ar+slFi8nblyHEAKTohBnsWIK6HwvObifb7duZsic2fT/fhppTidOnw+338+u9DSG/jQn4vGaV0yhWpwFXYZ/eU84Y/FoekAqNTqkno/MuAly3zPy0v6dkPcRMv06pJ6DlJI/5q1n+luz2fpbaCFOeteip9+OfqoFemon9LzPkNIXMN+N9NCwg2MgYMh5jr5rIa890p4TxxpgzH6toFSHmPsRZRdx92tvULZyEkIIajerwbBxdyLT+yGzHgXPTwGutzDUAMstQxTQ9orAnf0n29Y6OLY/0oxdIs0G60MIK6LMZF4Y2Igv36zIZ69U4q42DRl5U8mzOzCasYh/EUQZ4zqxgOkSRPK0YtvpAbBcRmS+twBzqJPMD2PmcepwGq5cNx6nl1+nrIzqUVkUtzx5LfHJsdhjQ9k5HpeXjYsjF8RLwohJQ4lLisMea8MWY2XklMdo0KYOFpuFmk2r8+bC56lQM3KRvEr9Slz3cE8UU2EYSTuWgTfgn4kEn9fPqtlndggbRdGi3aRCwK61+4od67PTHqfL7R2o2aQaPQd3Ydj4Ied0zf8k/G1n4HWTkiOKXTUpXwFTkfzbd9u38vLypfh0DYHgtkua8vmmDaVimZwJTUo0KfHqOiYhaFkxhe1ppzntzA8uK91aeBu5JiUbT55gX0Y6uzPS+WzDOvK8Xq6p14B7Wl5KnaQkVCU3LJWcbHVhFX4QxTuWSOfX4D9MaLu2G7STyPyJfPFmRX54fx4+rx+TWeWxT+/jqjuuRLqXGIG0YMYp8yHvA6RvDSJxHMS/YjjJCDXQ+KODvSciZjC6rvP4lc9zYn8qml9j9U/xDHzlNW58rE/I2Oo0L8u4P9/mvSHjOLj1MJOfeYH7n90DeDm8x05iWR9lU7yGMJa9F5hDNZvTT2QytPUxXLm18PsFNw9N5c7hoebJwlTIQhBCsPUPK2sXFc744mXpFeoUxw1I+7XGCkHYi3WDDxlDzH0Bo4wzm4+siLhHQ17Jy8oPpikAVFUhP7vk7taylZP5fOcHbF62nTcGfBjsrDRZTJw+ms51ZQZwSceG/OfrR4iJL52oU43GVfn2yKecOnSaspWTsMfa6Xhj25Btxvz2CnfWGkpeZmF94YnPh3L1gE5MGf1DSErFZFLRi6QTTWY1osBUxRrlsTqswfSN5teoUL34e+2IszPiswdLdV3/K/jbzsDvbNoCu8kU0mxjM5l4/opCMfr1J47xwtLF5Ho9uP1+XH7fOQfvM+GXkmWHDxrBuxTQpaTXN18yfMHPbDx5gj0Z6Xy45nfumDmDDrVvpEZsDlalaFrGx+NN1qLauyOUEr6MrplE1izxkrb3c6a+PhN3vpHH9Di9fDlqhlEYzHme8LytGzx/gG8jiuMaI+cb/zIi/jlE2Z9QEl5HCIXMU9mcOpxW2Mnn9LB8xuqIwxvZ5zV+n7OOo7tPsHBKOu8ML8+gjg0YcWNtBrZvyA/jy2J0MH4btu+XL04n67Ru5NDdCtM+LE/6ySLzDrV+2P3pM6RbkCtsdVi57qEeAEjfdqR7gZFTLwZCqEYDUymDN4AwVUckfQmm+hi5fSuo1RFlxiPMoRoj3e68Mjg+k1klPjmO+q1LcgIyEJsYQ/trW/PW4hcoVzUZ1aSimlRy03PJz3ay/pdNvHfv2dVNLDYLVetXDhornInMk1lBo2MA1aQw7okvGd75BSrXrRi0SzNuBDS+vJ6hmRJro2aT6nS5vWPYMa++uxNterVENauoZpU7nutHraYXhmr4v4SLfga++MA+JmxYR47bTe969RncohU2k5kKsbHMvOV23l61kg0nj1MzsQzD23WgRUqhrvRXm/4Ma2U/l+CtINDPr38cAJ/U8WmF02yvrrH+xHEe/WUt31zTiYnrvmL+0eokWdwMarCNzlUdiISXSj6u5o3eXiP86Frh2CWQUS+W277/Cp+nHTfX2sENNXYR2tfhRnp+RVhaGjl0e58zj0pcmZiQZhCTWaVS3XBKl5SSXWv3BrsBvW6F1fMT8PsEmt+YP0wancJV/TKJrxhelMpJz0XzF45fUSX5uSrJFf2ADZHwQtg+975xBzWbVGP3uj30uGUPNWu9hX7yWQz6hAUQSHNjRJlPDCecCwRhboooOweppQMaKOUi5rXrtqzFu8tGMf/zJcQlxnDjsD6lcqApinqtajPl0Kfouk4Pc/9gDtvv9bMj0GZ/fN9Jjuw6Tq2m1SlXpbBuMe3NWcx4ew5mm4mHP7qH9tcU7wS0+sd1IZRBza+Tk5bL1pU7ycvMZ+iYgXzz6veYLWYefP9uLu3enP2bDwWbbCIZLKiqynPTH8eZ68JkVv8RDvH/DVzUAXzKlk28umJpsGB4YE0mSw8eYHq//gghqFUmiY97R+4eA6ORprRht6BJvCglMc5qpWftulhMJr7bvjWkcHkhsejAPpqndGRYl48Z5l5gKONZ+oP50mILWzkeD/fOmUnXcuW5s85xrGpoDsbvg99+MtIviiKwOqyc7FqBY10q4Dl+GqjAjqwk1p2uyOuXFZU7VYjedm7AYrMw8tthvHrr++iaRuU6KTzwTjhVTghBckqZIINAUSUWm47HVfjIUVRJXo6D+Gptw/bvM6Qba3/eGKDOCSrV1KhcSwFLO0TccEQEsS4hBN3uvJKufb4Dz1IKVyey8GffZmTmg4jkKSH75qTncvJgKpXrVAxzMy8thJpc4jb1WtWmXqvSzbqLg6IoVK5bkWN7TyJ1iclion7r2iybvoq3Bo7FZDGh+TRe+vEpWnRpwuo56/jqpe+CqYvRt77P+M3vUKl2ZPE0gLikWExmU7DppwC6pnNg62F6DOoSEM0qRO1mNUo1/jMbkP7F2eGiTaHoUvLWqhUhQdOjaexIO826E5G67cJxXYOG2M/QT4lGA1QVJSzY53o8/Lh7Fz/s2IZX04qlF54PfLrOV5s3IpR4hOMmROy9CEvrElkJzy9ZxJ8nTzJ+5yVke614tcI/p98HeTkqUz+sgMVmpvugLtzz0UByulbBU0TIyqWZmXO4DsedRYOVGWHrEXY+r8fHqUOng5S1dn0vZWbG53x7ZBzjN78TVJ47Ey//+DRlKiQgFEHlOmUYPDINq90Yg9miU6mGlwrVFIQjXBa0VbdmvDrvGXre05VbnrqR91dPxVx5E0rSFxGDdwGkb09Agzua1IEPfFuR/sIC5/qFm7i9xgM80XUUt1V7IDiTvZggI+jkj/5pJLWaVMcWY6XZlY14fMIDvP/AeDwuL/nZTtxOD2MemADA7nX7QrREVLPKgS1RGqoCuOrOK6jbsia2GCuKIgoVOAWk1Cx/zj0X/+L8cdHOwPO8XvJ94dxWKSX7MjJoXalKiceoFBdPSmwsB7OyjMAtoHWlKjx8WVueXbKIg1mZlHU4aF+1Oj/u2hF6nsD/riJa4ck2O/l+Hx6//5wSKirRyXClpT4GxyclP+/djU/XyfDYuWZhPx5qtJ7eVffjMJvIzm7NMzdmkXla0rZPMx76cDD7crOwzNgWYoQBYFE19uckUsmRj8EyuQlhrheyza61e3m6+yv4vH6sdjNvLX6RWk2rY7aYSShbPMWxTouaTD/xGV6PD4vVjO6cTZny7/Pr9xbKVfJy24iymMpPj5rOaNapMU2vqGY4FymlvPPe1RTXYASAMIH/IJgMs4M37vowxBnm7UFjmbjt/dKd7y+GlJKxj0xi7viFmAMyqj0GdgEgpVYFPt34Vsj2BfokBXDnG7WO2s1rYI2x4skvLB5Wb1yV4mC2mHln6SgObTuCM8/NZ09+zc41e0mpXYGXZj1J+olMUg+nUa1h5VIXT//FhcFFG8DjLBYSbTbSnGdW5w11wpLw9KIFzCjituOXOoObt+LJy68A4OfbC5f7X27ayJzdJetc5Pt9TL72Ru6dM5PcYgSnIqFWYhncfj/H88IVCk1C0Lfe+ek5pLkdvPZDcz5eU4WqKWUZ8J8bGL/jEhQIdsVVFQlhkrsAHs1CnTKJYKkO9lvBcnnYNq/0f4+8LKNg63F6GH37GD7b8u5ZjdESKHYpjmtpd3tf2vU/BkoMQoluqCv1fGTOc4aUqzCj+TTWrOiGh2u4rOel0YWShL0YzfOCg/uhiJZKAaujADnpZyep8Ffi1ykrWTB5CZpPQ/NpfPTQRBq3rx9VRrXv/d2YO24RHqcHq8NKv+F9Abj8usu45Ylr+f69uZitZh7+aDBVItQuzoSiKEE9k/dWFHa0/jp1Je8M/gSTWUVRFd5d9hI1L4nWEPUvLjQu2hSKEIJRV3bBZjIFNdzsJjMdqlWjSQkB/MtNG5l+hlWaT9f5/M+NIUp/mq7zyvIlvLZyWVixMxJ0KbGppohBsDgUmFGkRmGslIuJZVjbQjGsX/btoec3X9Bq/FgemDebI9nZYfsIIehZpx5mxUgJWQ/lUWnsDuJWnSJz1nbeufpNen4+iTxf4fXGWiw8dFmbkLSS3WTm5sbNSan8AaBC9jA43Ro9rTfSU+iLmXkqdAwZpfAsLA5CKAhT1WKDN4DMHBLQ4fai+fJ54e6K5Jz6jbZthmDNb4H35A1IbwR5BlvXYo0f/D7Ys8XC0X2FOdhO/S8PyrRaHVa6393pXC7tL8HB7UdCVgeq2cTR3Seibj/k7QEMGzeEm0b05ZlvHqXfMCOACyG48/mbmJX5BTNOfsYV/cLNrksLXdd5Z9DHeF1enDku8rPy+WBodEGsf3HhcdHOwAF61q1Ppbh4Jm/aSKbbxTX1GnBN/ZJnqm+sXB7xdU3q7M1Ip3lFY8bxwZrVTNm6Ocy4wayomBSBx+8PLsKtqkqnGjXxSS2EZ14a6FJyMDsroje6zWTimQ5XYjcbQXX+3j08/stPwQfKwv37+OPYUZYOGEy8NbSB46XOV3EyL5fNqadIWJeG4jNGKzSJku/j1PbjfLjmd0Z27BTcZ2jrtjQoW45vNm/Cr+vc3PgSetUuh0zrBTKbYNrBvweZeR8kfY6wtKJd31as+nEdXpcXq91Ch+svO6t7cC6Qvu3g20yBONTWtQ4eePk45St5MQdJG1uRGYMgaSLCUsimEEoSMv5ZyHmVosqJUoLXLTiy18qzt1chseK7TNj8DgDDxg2heqMq7Fq7j6ZXNqLPkG5/+TWWFk06NGSm46dg/lrXipdRFULQ9faOdI1A4btQ0PxaCJ9dSshJK33X5r84f5xXABdCHARyMVK7/khiK+eLZhVTeK/i2SmOuSI004Ax406JLSy0RaIZWhSVx9q255r6DXhi4XzWHDuKIgQ969bjlc7dUIWIaLZcGkTaK9FqC3H1eXf1ypAx6VLi9vuZtXMHdzULtd6Kt1qZ2q8/h7KyeHTpu+Sqp1AKKIM6eC2CBfv2hARwgK41a4coJ+p5YwMNKGfOWN3I3LcQyVN5YvJDfPnCNLb/vpumVzTijuf+H3wIfVugyGMvIUkjqbyvSPAuMs6cVxFlZ4W8qjhuQZqbIJ1fge8wqOWZ+PxW/lxhYc9mOyDweE4Ht1dNKjcNj85q+m/isp4tuP+du5j25mxsDisPfTiY8lXL/lfHZLaYuax3SzYs2mI82B3WEr0s/8WFxYWYgXeWUhbf6/3/DIfJHGJUXIDyjhjm7tlFWYeDq2vVCSlQFkCTOpqUVIqL55sbbsbj96MqSsis++1uPRm24Cd0JN4is3cB1Esqy56MtJLKZ0Fkul0cyc4K2rtFkrJ1+/0czs4Ke70A1RMTaTqgPcuXHoBcL+iQ26Yc3hQHZWyloGl5lhOVreEzWrQtVjP3vH5Hyce6kFDKglCCT76qdTxEIRGBfydSesMMgoW5ESKhULFu1S+PcGxPYeohpfa5OcP/N9BnyNX0GXJxBcjnZwzn+3fncnDbES7r1ZIut3YI2ybrdDaZp7KpXDclWAf5FxcGF20OvCQcyc5m6cEDHMsNX7I9eXnkZWOGy8kbK5fxzOJf6DBpXMhsvAAmRaG8w8Ha40fRdB2ryRSWMulepy4/334X6hn0KZvJxFW1a9O2arVi7diKwqNp3D9vNutPHONQVhZ1kpLDUi0Os5k2lYtnCtzd/jJOj2zJ8QcacnR4E9L61cRuMvFg6zYlD0IU08wiIrni/D/B2pGi+iKqCtEXP0pw26O7j7Pm541knAzP0586dDrk97yM0nXS/ovIMFvM9Lr3Kk4fTeedwR9zb9PHOba38AH586TF3F79AR5tP5IBdR/i9NHSOhv9i9LgvPTAhRAHgEyMOdI4KeX44ra/EHrgmq7z5KIFzN29C4lEl5IOVavTvkpVxm9YR7bHTcuUSnSuXpPJmzeS7XZTPSGRQ1mZeEpRfFSFwG4yo0uJX9cxqwpJdgdDW7fhpkaXBDmvs3Zu57kli8KojhZV5fubbmXg7B/Icrvxl9JBXRECRQgsqorT58OsKPh0HYfZTLMKFfnyun6oJeTeVx05zLNLFnIwK4sku50R7TrQ/5LoXOkCGJoojxGuKGgBx20o8c+U6hr+CkjvBmTm4EBBMponpQrWrihlPmLehIV88thkTBYTuqbzxsLnadimbnDLvnF3hBQDqzaoxKTtY/7ai/iH47lr32Dd/I34fRpCCCrXTeHznWNw5bm4sdwgfB4jJaioClfc1I6RUx77L4/474doeuDnm0K5XEp5XAhRHlgohNgppQypIAoh7gPuA6hW7fzpRd9t38rc3TtDmCDLDx9k5eFDwXb3dcePsSs9jeV330O81cbYtX/wzuqVpTq+JmUIc8Ora+T7shm17Fe8msYdTQ0Jy3SXK6QtPri9pnHL99MY3+daTublMWHDOvZnZCCFYT4crZtTlzL40Cj4/foGDelasw5X165TYvAGaF+1Gr/eNRhN10u1fRDWTmDvDa55GNooEnCAqWqYNveFRMbJTHIz8qhcNwWTOfJHUVhaQrnl4J6H9B00LM982ygM5jZQYhHxz6LrOmMfmYTP4w9aiY19ZFJQ9N/j8nDfW3cybviXqCYVTdN48P1BF+RastNyeG/IOA5tO0LLbk0Z8vaA/5l0we61e4Ot9lJKju09gZSS/BxXSJOPrumkHytGdvdfnDXOK4BLKY8H/k8VQswELgOWn7HNeGA8GDPw8zkfYJgBR5hJF9UqkRiNMa+tWEbl+AQyXCUrvZUEl9/PB2tWBwP4FdVqGA+FCBNsp8/HiIXzqRIXz56MdEN/RRKmnFgczKpKi4qV6FW3XskbF0Hq4dMsmLwU1aTQc3BXylQoWetDCAHxr4L9eqRrNsh8hLUb2K4KyymXBlJKpGsm5I8F7biRy465B+G4M+gu9N27PzJp5FRUk0JypSQ+WPVq1E5OocSBo79hBCMleFcgndMMnW1rZ4TjZoQSh+7Xwox8nbkufF4fo258m7Xz/0RRFW4feQNVG1ShbsuaxbaQnw2e6TWa/ZsO4vdpnD6Sju7XefST+0q1b+qRNMPlvW5KiU42P322iM+e/gZd07nj+X5BeuB/Cwu/WkbW6cI0plAENRpXDUooVGtYhUPbjhgNYA4rPQZ3+S+O9p+Hc06hCCFiAEVKmRv4eSHwkpRyfrR9LkQK5fpp37Dp1MlSbWtWlGAe+0LomKhCsOfhx4O/v7N6JePXr434QLEEErbes+SMF6CAXljwwCgN0o5ncE/jYYY0qQB7jI2vD34c1ZNwy4odHNl1nIZt6wabL7LTcvB5fCRXSjrnFmk97yPIn3CGv6Qd7H1REl4h42Qmd9QcGlS4M5lVeg/pxkMfDD6n80npQeaNB9e3+NxZ7PrTxqTRFdi7NZmHPhxETlouX7w4HW9gVm6xW/h43RtUb1hyN29pUCgoVfhdKvCGLAkfD/ucuZ8uRFUVajSpxtu/vhBV2Gr3+n08fuXzQR1tW4yVl2YbGif/DUgp6Rt7R3C1UzCmSTvGBMWz8nOcfPXSDE7uP0WnWy6n0y3hTWL/omT8FSmUCsDMwJfcBEwpLnhfKNzVtAXDF/5cqm0LAmtpgrcARAmqg2c2EA1v14E6Sck8tWhBCBsFCEmHRINVNeGJQnlEQvfadSO/F4AWOH5BumTFd7+Tn+MM7u/Kc/PpsMk8+cXDYft++9oPTBn9g1EUlJJnpz3OlhU7+GHMPIQQNLuyES/PeTpqaiMapJ4LeeMIZ7W4OLVnLmtWX4LbbUc1q8EA7vdpxS6t3U4Pr/Z/j3ULNpFYPp7nZgynUVtjZSKljswYCL6tgBuzBS65LI83Z7jZf/gWGlzehbcHjQ0GbwCvy8t9TYfTpndLXvhuxHl5SoLRpVimYmKwuUk1KVE7JItiz4b9/DRhMT6PDx+wf9NB5o1fxA2P9o64/YEth0MeqppPY/+mQ/+1AK7rOj5v6Oc3qWIiGxdvwZ3v4fLrLyM5pQz3v33+fqD/IjLOmYUipdwvpWwW+NdYSvnqhRxYURQNhtc1aEirIpKxkXC288YCj1azqkS9IXbVxCtdChs7/LrOsoMH8Pj9lHPEhOxnEkowuEZDvMXCPS1aEm+1ogiBGnD5ibVYiDVb+KBnb8rFRG4Tz3a7eXDejzT8eAwNxr7PkLmzyHK7gi4oRbHjD0P7euYHPzGg3sMMvexpdq3by5ejZuDO9+BxevC4vIx9dBKzx87H7/Xj8/jYsnIHCz5fUvyNiwTfRohg/3Z4j5UhXWox/qmZfDVqOrqmYzIHukgdFq6+u1DHPSc9lxU//MGmZduQUjLpmSmsX7QZv89P2rEMnun5aqEHpPc3w4XoDF1zk9lPvXpfI6WkTZ9Lg/rbBdA1nQ0LNzNv/KKzv8YIeGXO0ySWNwS7qtSrxPCJD5S4T1ZqNmoRNxuv20fGyVC66Kof1/LpiC/45Yul1GpWPSjLC6CYVOpdev6KhucKVVXpcluHkO5Vr9fHhw99xrgRX3DPJcNIPXJRMYz/cbioOzG9msboFUuZtm0rPl2jZcVKvNWtB9P79Ri5cAEAACAASURBVGf8ujW8EaEwaVYUKsfFc7AY3nQBGiSX40BWRrAT06NpUYN/ssNBo3IGZzg1P49+M74l0+XGr2th++myePVwATzWpj2frl9Lntcb1Ci3Kgo3NmjM0x2uwGqK/qe5d85MNp06GXyoLT14gEE/zuSLu/sybsSXIUv5Oi1rsmzGaiY+MyXYxfdE11FhzUh+nz8kmHhc3hAT2VIjCu1w1sSyuPKVAJvEi9VhocP1bfB5fXQf2IV2fY3V4cmDqQxt/RQ+rx+pSzrc0IZje0/iKyLO5PP6yUrNoVyVZKR7cQQXnAC0k6Cn0/GGNuSk5zD19VmkHk4Lekp6XF6O7Tle7OVsWrqNGe/8iC3GyoBRt0SdWddtWYvpJybg8/rxe/3s33QQr8tbbI69Ydt6mC1mFNWDrulYHRY63lBI+5z10c989vQ3QT2TbnddyeOfPcD4J75C13XuevFmmnQ8Pw2dM3Fs7wm2/baLCjXK0ezKxiVuP2LSgzRu34CD2w6TWD6B6W/ODrJ8/D6NnycuZsCLt1zQMf6LQlzUAfzl5Uv4fse2YJphw8nj3PTdt6wceB+da9Xmrd9/CzNosJpMXFu/IeM2rC1R3+RITlZYG320wHssN4dhC36iSfkKLD90kOM5OSH1y6L7lZT1fvaKTiQ7Ysj3eUPG79E0Zu/eQb9GjRm3fi1Hc7LpXKMWdzdvSZzVmEEeyspi6+nUkLy7T9fZmXaa0/h45ttHefOuj5BAherlePD9gUwaOSVEQlRRFLrc2oFl361G1wzGyt0v3cInj3+BCHSaWm0W2vZpReapLJy5LlJqVSixwAaAuSWRPlZCGP8KL1dw6zM3hLmwTHtjFnmZ+UFbrhXf/c7VAzuxf9NBPE4vQkBMvJ2kioHirLBiLCQj3XVpKA4Cve/tRscb2nJXnYeC9mVWh4XLerWMeim71+9jZJ/RgfMK1i3YxOTdH5BYLrLFnRCC9OMZPNL2GbweH36fxoBRN3Pdw704dTCVpJQyIWp9sYkxjF37Ol+/NIP8XBfXP9yL+q2NrlwpJdPfnh38u3mcHn6euJhHxt4TsVnmQmDryh38p8erwSXsNUN7cG8JzVuqqgYlBzYt28b0N2cH3xOC0n1m/sU546IN4F5N47vtW0MCrC4lmS4XP+3ZRabbFdFdx+33c2ez5tRJSuaN35ZzMj+PGLOZHI8nJMhaFINvXVpIYPauHczZvfO8LNlGXdmFO5u1YMKGtWF5c4Ast5ubvpsalKzdnnaaH3fvZO6td2I1mcj2uDGJ8C+FSVHIcrvpdPPltOt7KbkZeSSllEFRFGo1qYbVYQkWv9wW+LVzDKfi6mJJdeGtFsf3i9dw+bWXkZuZS056Ht0GdOKPnzYw9fWZKKpC1QaVeXfpqKi2WwUQwgSJ7yAzhwL+wD/l/9o77/Aoqi4Ov3dmtqQnQAgdQu+9dwFBimIBAVFQUFEQRbBgRVDBgqgIiH6IIApIBxFBBES6NOmd0ENCIIWUbTPz/bGbTTa7CUFQiOz7PHmyO3tndubm5sydc885Px4alMK6JcWdKjxCULtVNaJreYeVWjNsHpqKQhIusQDBpkXbKFKqMK9+N9TttxYB97qk2HJKwwkwVPcoURtaOIRP/xjDl8NnkpaURo8R99Hg7jrkxtblO7FlOMdIZh3ug5uP0rx77go237z2AylXUt2z/OlvzGHex8uwZtjQNZ235g2nSbabRlTZSEZ846nzePFUPC+3H82lM55JL0aT4R+tvf3N67OxZLvRL5ywnH6jeuZbLahmi6qUr1OWk3tOo+s65kATXZ7q8E+drh9ucwPu0LwNparrjFm/ltJhvsPjgg0GCgUE0rVyFbpWrgLAuZRkusz+DovdgUPXMMsKZkUhwyFyX0TMhRsx3gJoX97ps2xSsjSKK1knO2ZF8XhysKkqJxOvMHv/Xp6oW5+qRSJzzfKs4XLxmAJMmEpm/dPdN/geDm09xvr5WzCYDKjvtOBESiKOSiFQyRmhsiZS5cx7WwgwKNitDo7t+ha71e72uZ4+cI4FE37isbcfvvZ1mlpBkWXoaTOd/mmlPCUb9Oebg1HsWPUXIRHBNOlW38sYXTwVj81iR1YkZzigcCZ/mAJNPD/pSZ6f9KT3dxlqogc8ABlLyIoNN3LmWBAxZ3tRvu5ZylbPymKNruVUWs8PhYtHYAwwuG98mqoRUcz3uNN1nZXT17J7zX638c7cJzkhxf2I9l6vCSxLmZWnIf6w3xfEnfKUl1OMCi9MzV9Y4t/FkUNxR1VVj5vptZAVmfFr32HLTzuxpFpo0rV+rqGhfm4Ot+3zTbDRSHSE73+WJKuVE4m+/bMpVquHf9euqozdsB6bqiIJgQBqRxXjtZatUSTvfyJFkni1eStuLC7BNwGKgcQMp5GpHVWMeytXdZd2NckKwQajz1RxHfjiT6dgsFGW+fyergQoCoGKgUDFgFlR+KxT11z95rIi8/rsYaywzGZ2wjROqmk4cn6RrpNcPpDUxDSs6VZsrhljJnarnUvn8u8TF0o5pLBRSIV/RAobhzBUpXDxCDo9fhfNuzfy0klMupTM4IavsmHBlqxYbt0Zx/1S21FZi5a+viv0HUT4p2hKS1YvqMGYQU0Y1K4s4x6bx9N1XmLVjL+xGAt0euIuqjevgtFswGBS6DywPcmXUti4eBsZaRZ0XWfuh4sZVPclnqozgsnPTyflcla9d6PZgMGoePjXbBk2HPa8Jw2xJ+O8xkGhYuG0f+SfqywIUL+9ZzSLLMsc3Hzkuo6hGBRaPdiEu/u18Rvvf4HbdgYOMKJpS55dscznZ7m5PzSc4XWKy0DM3LOb30/HeLgr9sVfxKx4u1BkVzr7x1s2YpCdmXo3E0kSVCyUpZc4rn1HHqhanfWnT1EkMJDuVarRc/4cnwuwSRYLnX+Ywcz7e9CmXDQbnniK306eQAc6RFegcOC1lVBkWYY81wW8b2hCEuiajinAyF29WxB7Mo7lX/2KrMjc+2wnD7HcG2H9/C1Y063eMz5XOGTCuSsULx/F1cRUTu49TdHSRShe3hnWKYQAczs+fnIfm5dux5KWlViiqzqfDJxC657NCAhyLrCunrWeRZ8tJygsiMGfPeHlh0+MT+bs4fOUqFiMD1e9xaWzCQhJMKbnBFZOXwsCwoqE0vnJ9swZu8gjNd/db0LQ86XupCWn8vNXv2G3OTCaDVRvXgWD0TtKJzYmjq9GfMe5oxcIDg/i8gXPOi6+viM7cacv8dkzXxF3OoG7ereg75sPXbf/OSwyFMWouEvEGkyK13n4ub24rQ14+/IVCDYYSPVhrA0+3A+ZpDschLoM+IKD+70WMzMcDv44c9prP03X3UY75+LmjZBZ9EpC0On7GTxWuy796tTDIMs0KVWaJqWyHvEfqV2HsRvW+zzOkcuXeWb5Uhb16kuhgEAernH98b+hJhP1ipVgZ+x5VN3T1xx2Kg05wOiO+DAFmmjUuS4Oq4N7BrYjOCKIQfVewpJmRQjBz//7jekHPyOsSKj7OGePnGfi4GlciUui88B2PDSs2zX9tof/PMZXI75zx4XnxJJmZe3cjbS8vzHDWr6Frus4bA6e/vgx7hvs1O7MSLOwft5mr0xMcC6crpu9kS5PdeDPX3bz+bNfu90iw9u8zXfHJ7lni/s2HOL1Lu8jKzIOu4M35w6nabcGbF2+k9MHzpKR6vS1qw6NldPX5mpYDSaFqk0q8l6vCU5XkCSo3qwy7y4b6dX20LajjOz0npciUCZGs4HOeWQwqg6VF1u/xeULiWiqxo8fLcUUaOLhl66vNG6pKiXQsvWfEII6ba8dieLn1nHbulDA6c4Y37GLz890fMd7BxkMBBuz0r8NudYf9X3Mm4lRlmlesjQCgarrpNisnElJZtymP3hh5XKv9vvj4/jj9Kk8j3ngUjxxqTcm9fVO23aUCAnBLMsEGYyEmUxMaHE3C059xdd7xtN1UAe6PNWeyds/4O15I2jXtyXv9/6U5xqPJOOqBV3T0VQNm8XG9pV/uY9rSbcyrNVb7Pn9AGcOnmPmWz/y68zfr3k+nz37tZfxNgd7hiPOfn8Rb3X/kNSkNNKS07Fm2PjyxRlu14qsyM6wh1zI1Ij8c8Uut/EGSEtO5+uXv3O/n/DUl1jSrM7vSLcxfqAzmzJnwoquaoRFhjpdJJkIZyai0Wzkle+G8r9XZmFNt2G3OtA0nb3rD/LmvePYvHS7e5eV365lRNtRuRrvzGsbMPYRn5/t+f0AT9Z4kUvnLmeFR6Zb2br8+jKe069m8FG/L9zuR0mWeOLd3kSVjbyu4/j5d7mtDThAxwoVGdakGYZsj4PZZdayY5YVXm3R2mORr1/tugTkEVP9T1EkIJBdTw/GoMheFQk1XWdNzElikrIeT49cTqDXgrls9PFkkB27ppFuvz49zkx0XWfchvXc/+MPJFksqLpO01Kl2DrwGe5rXo/g8CBKVizOC1OeZtjUQZSpWpK0lHQ+fnwyNosdTfV2bwSGZEWlnD8Wi8PqcBsBS7qVrct35nlOGxZu5eRfntcsJMFzXwwgIJsRt2XYiD0Zl+N6sgyz0WSg/zsPYwo0esSzAwRHBNG6Z1PAOcs0mD1dGOt+3My2n53nmdOQWlwz7oYdaxMWGer2aweEmHl5+hCia5dBVpwLre8sfInJ2z/kxwtf06ZHM69FQU3T2bPuAGP7fsau3/YCMHX4THe1vtywWe0+DXz8mUu8ee84zh2L9Zh9GEwK5a4hVJyTU/vPOGPvXX87TdU4secU4CwCtuWnHc6onFyekvzcGm5rF0omzzdpToMSJflh7x5sqkqyxcKuixc8ZswSgj61artrhxxKuMQfp2MIM5npWb0mc/bvvW4tS19kZm3mhkmSiAoJ4X/d7uernTtYn8eMOiYxkejwCACmbN+Wb7fN/kvxREfkrSXpi9Unj/P9PmcfZq4JbD57hiWHD9Irl7KzyZdScvWllq5SgibdskLiipQshMORdQ1Gs4Gy1fOuNzL9jdleSUVN721I1UYV0XL+vbI1U0wK9dvVYt2cjcz72Jlo89wXA3ng+a4snPATqisu3GBSmLj5fQoVc/Zzt0F3s/q79RzdccJ9LLvVzok9p2nStQHdnunoTEZJtzozRPs7M0QDggOYuusjVn/3Bw67g6b3NcQcaOKLrePISLVgDjJ5Lcw+9nYPPnvmf9itdo/IFGu6jY2Lt1GxfjTpV3OfeYPTjRFeNIygMO81juO7TyHJUo72ULlBBQaO65vncXNSuEQhD3k0o9lAiYrFyEiz8Fzjkc463jqUqFiMiZvfx2i+/iJnfm4+BcKAA7QoXZYWpZ2LTU2/meplRDV0d4TH+M0bmP7XLhyahlGSkSWJce078vqa1di0G/NtS0J4+I6zExUQyKwHH6ZCoULM2b+Xabu2+2wHzpn0xWxiFCcSr+QrRFEAE7dtYcz6tZQJC+elZi1pVjp/ZXrnHdjvpUKU4XAw98C+XA14VNlIwoqGYj2T4BGVYgo00ef1Bz2MVliRUF6d+Rwf9Z+E3eagVqtq9HntAY/jnT1ynuSEq1SsF4050OTT7bHtpx2UqlSMEdOe5csXZ5CalO7hYlEMMl2ebE/9DnUY1/dzd7LLG13HUqdtDQ93h8Fk8PBTKwaFvm8+xKj7P3Jv0zUdU6CR4W3e5nJsIk261ScwNJAqDSvQ+cn27nbpVy1sX7mbmP1nmDbye2RFpmSl4nzy+2gv4w3Q4dE2FIuOYvPS7SyeuMJtII1mA1FlI/ly2AyffQ5QsnJxUhKuElU2kjfmDPO5jlCycnHUbLN8U6CR5yc/Rcf+bXM9bm5ElY3k6Y/7MXXETACqNqlEj+H3snbOJuJPJ7jjw88fv8iWZTto83DzvA7n51+iwBjwTBLS01F9xKaaZJno8AhOXLnMN7t3ueO7M9PNv929kxCTics3WFpWFhKq7vsmkGizEh4QgBCCabt3XLOI1nsb11MuvBCrY46TlJHhVq/PCx3cIZSXMzIY+NNiZnR/iMYlr11ZT/IRNgnkGleu6zo7V++l+5B72LJsO/s3HUHXdCRJYDAp1G5d3Wuf1j2a0fLBJjhsDo9ZmqZpfP3KLH768lcUg0xgaACT//yAJ8f1dRrhbMWmNE1n/ic/ERgaSETRMPqN7sVXI2ZiTbehGBWKRRdl0Pj+fDfqR48MU1mRCY8M9Uha0lSNqHKeftxT+8+6o2vAaeRnjvoRS6ozBPXKhUQGTehP16ezat/YrDaeqPK8x3mqDo2zRy7w7ZtzeX6yd4w6OJNbaraoSmjhYGaOmoeQBJUbVuCB57vwQos3PW6K2QkMNjPj8ESfn2VStlophkwcwOQXvsVhc9B5QDvu7tcmz33yovuQe+j0xF1Y062EFg5BCIHD5vAck7rud6PcRhQoA25x2Ll/7vckWbwfO42yQpdKVfjp6GF0Hyo4BxIu+cxgvF7seczgVU0jw25nyIplnEq6di0Wu6ryxLKF6GTdaDJdNGZFIdhoJM1mw6Fpubp/LA4Hn27dxJyHrl1vok/N2mw6c9rjxhKgGHgsl5K1Hw+YzIYFW9F150T5pW+e5c8VuzEFmuj75kMe0SfZkSTJw3hvX/UXox8a7za2tgynG+GH9xYydNKTjF/3DkOb5lD90SE9OZ305HSmDp/JOwtfYv+mwwSFBdH16Q4YTQbK1iiNOciUVXvD5qDnS/ehaTrr520mMDSQkbOGepXTDXf5sjONvJAEqkPz8N1vX7GbbtkM+LIpqzyMdyYOm4PYmDiv7Tnp/eoD3PtMRzLSrBQuHoEQgibd6nP2yHmPRdVMzhzOu0ZLJp0HtueeAc4IlZuRpWkONDmfjFy0fLAxM9+ei6ZqCCEICgt0163xc+spUAZ8xbGjJFktXi4Ms6zQsEQJus5xRhPkVoM7v/JmeZHX/FjVdR6cN5tka8607tzb57wWWQiqFonk/qrV6Vm9JilWKz3mzyY+LS3X7z6bnOzx/vjuGBLjk6nWpBLB4VkVDe8qV57BjZow6c+tGGQZu6rSp2ZtulfxLoh05WIiv8/d5LHAtnHxn4xZ8mq+ri0Tm8XGmB7jPWbK4Ax9y0x6qdq4Eh0fb8uvM37P5Sg6GWlW+o/uhc1ic6d2t+/bioNbjvLLtDUoRoWhkwZStnppXpnxHK/MeC7Xc7q7fxvWzN7Ake3H0TWdVg81ZcPCLe7PjWYD5Wp5LgJmpPoOFzQFmrird/5qXAeFBREUlvX3eOztntgsduZ/7J3roF4j2Sc7/2R6fXhkGF/v/YQ1P2xACMHd/dp4jCk/t5YCZcBjkhJ9JvDYVJXNZ8/6rC3yb5Obi0Z2FYm61i3EoeuUC49gQL0GAFxKTyPJYsnVeEtC0KRUaXRd5/KFK8z5YAmrvl2HrEgYjAam7PiAomWyXAhDGjWlX+16nEpOonRoKOG5qNb7zAj9G2UEkhOu+kzHNgUYPVwUL30zmLDCISyauML96J6JNd3GhKe+ZPyAyVhSLVSoG80Hq94ktHAIL0x5yu2+yK8hMxgNjF/7DueOXsBgMlCsXFFa92jqduXUaVuDvm885LFPi+6NmP3+Ahy2rDFWqUF57n2mIx37tb2eLnEjyzJPf/gYsiQxf8JPbn+2waTQ8sGm7nY2i411czeRcdVCiwca37TkqfwSERVOj+G3VvnHj29uSNT4erlRRZ7fTh5n2KoVXkY8P77jW80rzVqx7vRJ9sfHIUsSdlWlWHAIp31kXYYYjfzStz8lQkLZFXuBPgt/9OlCMUgSwUYTP3Z7iE/vn0DMvjMeM2YhoNPjd3kVS8qOrutcOHERo9noZRje7/MpW5fvRFM1JFni4zWjqNo4b5GJnKiqSv+KQ91xyrIiU7lBeZ766DGfpVBTk9K4dO4yQ5u+5tO1AM5FzFY9mjFy1lB0Xfe5gPh30HUd1aG6RSxUVWX9vC0kxSXTqHNdEuOSmT1uMbIsGDj2EcrXLndTvhdg99p9rPx2LcnxV6lzV3V6jriPCyfiePPeccSeiENIAsWgYDQb+HLnR+4sVD93Brkp8hQoA65qGr0X/sjBS5fIcNhRJAmDJGFT1VwjQ24XCpkD2PbkMxxPvMKppEQaFC/B+ZQUei380evJQRKCtmWjmXbfA1jsdqp/6Xsxq1ulKoy5qz3zRy1k8cSffcYTl6xYjKDwICrUKcugT/p7lDO1We2M7PguR3eeQFN1uj7dgSGfZ4n8aprGpiXbuRKbSIO7a1Oqct5CGrlx6dxlPh/8P+JOxdP24eY8NLwbCyYs5/yxWFo+0IQW9zf22ueBwo+TmpiW6zHDioSQfPkq6M7oi3G/vHnN2tjpVzNIOH+FqLJFfFbYS7+awdevfMeJv05Tr31N1s/bQuyJOBBOt8onv4+hyr8ooPBo+cHEnbrksU1IgvDIUIqULMTj7/ahced6/9r5+Ll1FFgDrus6e+PjuGq10qB4CWRJYumRQ6yNOUGRgCB+izlBQnrabW/AAxQDQxo2Ye7BvVy4epVgg5GhjZtyKimRH/bv9WpvlGUODxmGqmlUnvSplwtFkSReb9mGx+vWZ0zPT9iwcKvP75UNMqpdRZIlylQryf/2TnB/tmzKKr5++Tv34pw5yPS3ZtnXg67rvNx+NIe2HsVmsTsrDU550sMNYbPa6VlsIOnJvmOkFZOCale9whoXXf42VyX4Pb8f4M37PkDXNOxWB4EhATTuUo/h/3vGbcxfbj+aA5sPY7c6kGThlbjU8sHGjFrwcr6vdefqPZw9fIHqzStTqX55Dm09SnLCVWq2rEpIRHCe+/rS2cyJKcDI55vfp0Kdcvk+Jz8Fk39CE/MfJy41lb6L5nExLdXtJvmsUxd6Vq/JPRUq8cba1T6NtyJJ6JrGrfeIZ5HhsDN+a5aCUIrNyoStm+lcsRJmWcGSo6xtkMGIruvYNZXaUcXYG3fRw4grkkTLMs64+Lt6t3CmiPuIksj0q2qqxqn9Z/l4wGRe+mYwQggS45KwWrL2kWSJxLhkr2Pkl0z5s0Wf/4xiVBj82RN0yiaVBk4XyYFNh91ZitZ0K8smr/Iw4Ie2HvWoyZFJ+dplsdscFC4ewV+/7/f4zGa18cnAKdzVuyVNuzXw2ve9Pp+6syozz2Pjom0EhgbywpSn0DTNKeGmZWYiehvO61ksnPnOPBZ8sswdvVGjRVUObjmCJEsoRoUp2z/MM01dkiTK1SzNqQNncw011DSNfRsO+Q34HcxtnUr/4qoVnE5OIt1uJ9VmI91uZ+gvyxm+agWNp33J8mNHfM68O1aowKQu9+Ua33yjmGQFkyxft/ZmTjIcdtaeOomcIz5bEoJki4WKX0yg+pSJnE9JcZaPNRgwSBJmRWFA3fruyoatHmpK+TplvY5fsnJxr22/zvidL1+cAUDz7o0wBTjD/YQkkBWZGs2r/O3r2bhoG0sm/YLN4kz9/mLINE4fPOvRxhRg9EjeEZIgvGhWOKKu607xgxx/10oNyjN198dMP/gZA8c94iVErKs6a2dv5L3eE1g9y7sYWOoVb3eMzWJn7x8HAafBvFb508dGXbsWOjgN69xxi7GkWbFZ7FgzbOz6bS+WNCvpKRlcvZLK7LGLvPbbv+kwHzw2kUnPf8Pl2ETGrnid2m2qExEVRkCIt1SdJEl5Srb5+e9z2xrwDLud7RfOeRloVdf5+diRXNPODZJE2bAIOlWsxMB6DTDJCspNlHUSQKcKFVnY8xFqRBbFfIN1VpIsFgyyTMWIQgjX8TVdR0N3z7gTMtLRgEENGvNy81Ys7tWXl5p71oZOTfKMfhECxix5xWfyzrIpK7GkW6lUvzxjlr5KxXrRVGpQnneXvnpDNZxj9p/xUHSRDbJXPLPRbOS5LwZgNBsIDA0gtFAwz376OAAZqRm80OINRt3/IdYMG5IsMAebKVKqEON+ecM9A67auBIjZw0lpFCwlyG3pttY/PkKr3Nrdl9DrxooBqPi4dN+Z9HLBIYGYDQbiCgeTrFyRZEUCVOAkVELXyK6Zv4yXoUQeSpr65qOJc0z1PTwn8cY2eld1vywgeVTVzOk0asEhQUyfs07zIudxgMvdHWLB2dyV+8WNLrHdwy/nzuD29aFIgnh/EfIKb57jXomBlmmd41arDl5gjPJSVQuXJj98ddOtMgvuuunetGizOvZm+/37mHViWNEBQVTMiSUb3bvJLukcX4iZNJsNvrUrM3wolG8vHoVaT6KVdkcDmKvpjC2fUefx6jTpjpxp+OxZdiRZIli0UUpU7UUr81+gbGPfO7zMdxus/PViO84f/wimqrxRrdxTN39McXKOZV9NE3jj/lbiD0ZT912NanWJHffuK7rVKpfHqPZiM3lylEdKhXrlvNq2/Wpu2ncuT4J569QrkYpt0zbD+8t5NiuGHeonqbqGIwyEze975U01PbhFrR9uAV2m537Qvu5ww6FgJDC3v7lx8f0Ii0lnbjT8Vy9nIYlzULt1tUZMjFr0bZmi6osvOQUZQiLDEWSJFKT0ggMDbiuSBchBP3eeZgf3luIruvu/shqAPcP9ayyuWb2RnfUjepQyUi1cGT7CereVROAx97qwdUrqWxctA1bhg2bxc7aORuxWR2MnDX0H40F93P7ctsacJOi0KpMWX4/FZOvMq8CqBZZlHfbtuf7fXv4fu8er7ofN4NAxUCXSpXRdR2B4Mn6DXmyftbawsM1avLx5o3sibtImNlMkxIlmX/wgJePOzt2TWP7hfOUDg1DyyXZSCP3GHOAZyb0x5phY+eveyhRsRgjZz0POA2dLcPOp4O+QgiBrEjcM6Ad5kATf63bT2xMnDvJRnWorPx2LY+P7g3AhKemsn7eZmwWO4b3FF6fM4zm93nqQeq6zvzxy5j17gKsaVaCwgMJCgskMNjMkC8G5hruFlmqsFfY4vnjFz3ivwEsaTa2Lt/Jvc92cm87uPUoCecuU6OFYlm+swAAHw9JREFUU+VnyOdP8OXwmRiMCkISDHbN6DPZ+dteXr/nPTRNR1IkqjepzCfrR/ss0qUYFHfhK+Cai42Z2G12vhgyjc3LdhBZqjAjv3+eWi2rcubwBf73yixSk5wuHCGcCvY5b4aFosIwmAzumi+qQyWsSNbTkGJQeH7Sk9RsUZVPn/7K3W7zsu3s+HUPjTr5Z+J3IretAQffNToyVXOyx0WbFYWFPftQLbIol9LSmLln901P6jFJEkIIGhYvwWdbNjHk52XoQMnQUMa17+gutFWhUGEGN2rC0iOHkIXg/irVMMoK3+/7C03Xc02Jr1YkkqalSpObBGGgwUCXSrn7p00BplyzDzv2b0uVRhXY+8chipWLpKHrn12SJY/UUiGEe6ZpzbCy+rv1WTWmM5yp7zkN+Iy35zJn7GK3zzo1MY3ytcvy1V/jcz1XgPizCZw5dJ4y1UpStHQRANr0bMbW5Ts9jLjdamfS0G84vjuGZyb05/t3F7Jsykq38f1s47t0G9SRBh3rcOnsZcrXLuuVKTimx3h3MpHm0Di07Sin9p/1UuK5Eb4bNY+1szdizbCRnJDC801f5+M1o+jyZHtKVynBm93G4bA7CC0Swpvzhnvtf//Qzvz+42ZiT8ahOlS6PNWB6Fre55cUn4zqUWNHJ+kGFp79FGxuWwNudThYf/qU1+zbJMtEBASSaMlAQmDXVF5o0oxqLkHfw5cvYZKVaxrwAXXrE5OYyB+nY/IVreLQdadL4axn7epzKSk8tngBhQMCebRWHYKMRiZs3YTN4QAE3+/bw6jW7fi9/5OM+WMdq44f9crGFMBT9RtSKjSMJ+s34JvdOz1UhEyyTIvSZeiWhwG/FmWrl/YQ9wWo0aIKlRqU59jOk876K4Emug1yZkdKsuT1WG5whegd/vMYR7afILpWGX768levBceLOQR5c/LnL7sZ0/MTFIOMw67y1o8v0qRrA9r2asHVxFSmDp/prvMNzuJWK6atYevynaRcvupRZ3v6G3N4d9lIikdHUTw6Ck3TSIxPJtTlH/dVS1tTda8yrHkRfzaBc0djKVu9FIWLR/hss2f9gawoIJeW54tt3mLkrBdo9WATFlz6huSEq0REhblvkpn9JoQgIDiAKTs+5NSBswSGBBBVLpKlU1Zy+M/j1GpZlc4D2yOEoHHnenz75hzsVgdCgCQk6rWvme9r8fPf4rY14Jqu+46BFYJhTZpRoVBhLqam0qBECSIDs2Zc0eER2K6hNF8qJJRXW7TGpqr0WjiXg5cu5dlegmvGmV/OSOernduxqWo2H7iOxeFgzB/ruLdyFbpUqsxvJ4971LmWhOCRmrUpFRoGwIhmLelcsTJrY06SkJ5GseAQmpUqTYWIQiw/doR0u522ZaMpHnL9i426rpN+NcNdu1qSJJ75pD97/zhIWGQoTbrUd7sMDEYDfd96iB8/XIosS2iaxtMfPcrqWev5/Nn/oWs6QhI+RXAy/ba58emgqVjTrVjd779i7rmvAbj3mU50eKwNA6q+QMJ5TxHl5IQUcpJ90TT2ZBwj2o4i6VIypgATY395g6qNKxIQEkBGtrrbhUqEX7NOeSabl21nbJ/PUIwKqkPl3WUjfV5f5YYVOPHXKY8bjy3DztThM9i1eg/mYDM9R9yLLMvous6kod/w89e/oRgVnvtiAPc80Q5Zkd0hgV88N41VM37Hmm5lw4KtxJ6IY+C4vpSqXIJPfh/NvI+WIikyfd94kCIl/93Uej+3D7d1Ik+fhT+y/cJ5j0VAs6Lwc59+XEpPo1x4OEWDvH2Uw1b+zOqTx73KuSpCYJJl3m7bniMJl/hh35483RoBioJVVW84TT/IYKB4SAgXUq6i6jpW1YFRkkAIOkRXYEKnLhjzWCTbHx9H30Xz0XTNGaGi64xq047eudTw9kXK5au83H40pw+ew2g28Nb8Efz05Sp2/bYPIaBivWg++u1tL8Hdw38e42JMPNWaViaqbCR9yjxDwrnLuX5PWGQIs05Mdi9M+uLBIk9w9UqWLFxweBCLr8zwaPPBoxNZM3uDxzbFqBBVpgixMfFoqobBqPDez6+71dSHtXqLg1uOuBdsC5eIYMzSV3mx1VtuwyqE4MPVb1GvXf70RHtEDST5UtaNo0SFKGYem+TVzpJuZewjn7Flmef4Fq4aOLIiExYZyvRDzjafP/O1++ZjCjDy5a6PKF2lpHu/e0Me9ahjHlokhB/Pf81H/SexcfE2gsKDeP2HF/J9HX4KNrkl8ty2YYQAEzp2oUxYGIEunUuzLHNX2Wi6zJ7JUz8tps2MaYz8bZWXgR3fsTOvtGhNtSKR1IgsSvcq1egQXYFHa9clxGTm9TW/Mv2vXVhV1afxNisKcx/qxdut77opNVYy7HZOJyWR7rC765QjBDO7P8SkLvfmabx1XeeFlT9z1WYlzW4nw+HAqqq88/saEtLzX9t89EPjObn3tDvCYdT9H7FrzT6s6VYsaVaO745h3ZxNXvtVbVyJRvfUJWbfGfZtOJSX7CQAEUXD3cbbmmHl4NajnD8e69HmvsGdMAc5sx/NgSbuHewdWTPi22cpXiHbAqjkTEbKjJgBZwx5ZKksZaK4U/Ee0TaJcckc3nbcwxVkDDBw7qjn+eSFNYdocXq2ZCBVVTn+VwynD57FFGBkzJJXGfB+H8xBJkwBRmRFdj9Fqg4VS6qFA5uOcPrAWY8nB8Uoc/7YRY/vCQz1VOAJDgti7odL2Lx0O3arg6S4ZN7u/hFpybmXG/Dz3+e2daEAFA8JYc1jA9gTd5EUq5V0u50Rv/6CVVXdceA/HT1Mnahi9KlVx72fIkn0r1OP/nU860T0X7KAi2l5CwLXKVqMV1u2pmbRKJ5YuvC6z1ngjEXPLGlrVhTsqnc9b1XT+PPCOQ9Fel9czsjgXIr3IpVd01h98hidKlTicnoG5cLDcxVwTktJZ9+GQx7bHHYHJiUrrli1q+5ICY/vj01kcINXsKRb0VSN6Fpl3GVgQRAcEURyfDIOu4op0ETLB5sAkBiXxHNNXiM1KQ2HXaXH8G488W4fAPqP7kXx8lH88s0agsODaPlAE6/vNRgMfHdsEknxSfyxcBvfjZpH8uWcLhTBrt/2uWeuze9vxKrp67Bm2DCYDNRsWZVyNUvnUP0R16UX2eXpDvz89W9Y062YA010H3IP4Ez3f7n9O5zccxpd12narQFvzHmRPq89SPXmVThz6DwXjl9k6ZSV2F2zf03TCA4PpFbr6iz+4pds0T8aFXKEW7787RDeefBjFIOMpmq8NH0w88cv88i2FRLEn71MdJi/vOudym1twMH5CFq3mDOj8Nmfl/qUBJuzf6+HAff43G5n+u6d/Hz8KIcT8vZ1GySJ7x7oQYjJxOazZ/5WAlDL0mWpFRXFwkMHEQJ616jF9L92kWLNUQ9b15mzfy8lQ0J5oGp1hBCsiTnB5D+3kZCRRvvoCrzQpBkBiuLT/64DE7dtZfT6dRgkCVlIfNihE50qesdqJ8YlIymSh/yW0WRAMSpIGTZ03eme8FWof9Gny0lOuIrq0ro8ufcMI6Y9S3pKBtG1ylCqcgmmDPuWs4fP0+y+hvR5/UEAvn93AZcvJLr3m//JT3R9+m6Kli6C6lBZ+Olyzh2NxW6189e6A4xf612DZd+GQ8wbvxSjyeA03jm6QVIkCpfIWlR8dsLjBIYEsGv1XirWL8+g8f0IDAngsVE9mTV6PgD93nn4mkWvsvPMJ/0pX7ssx3aeoEaLarTt1Zz9mw7zyzdrOLYrxm2ct63Yze61+6nfvhZ12tSgTpsaZKRZ2Ll6Dxdj4tE0jZYPNKFa08oIIXjmk37M+3gppkATQyc96RVS2bBjHWadnEzsiYsEhAaQeiWNKo0rup+awFmOtlh00Xxfi5//Hre9Ac8PuSUxaLpOn0XzOJJw6ZqCwYoQtCxTlhCT89E+UFGwqdcvALH74gWqFolkarfu1Ilypjmn2e3M2vuXR2QJwMXUVN5a9xvHr1yhcuHCvLF2tdtvP3vfHn4/FcOqRx+nSEAg8enes+P4tFR0cEfcvPjrClZG9qdMWLhHu6iyRQiLDOVKbCLozhTsR9/uQdteLVgw4SdUh8r9z3X2GbNtybC6jTA4ZdmKRUd5xDFnxpxnJ7vRB6fcWVpSGpQuQsy+M1yMiXfHMlvTrSz/arWHAT++O4bXOr+HNd2GyEzqErhdJEISNL+vIc27Z4U1KgaFgWP7MnCsp6Bvr5e70+vl7l7nmB+EEHR6/C53TZcf3l/InHGLUR0Oj9rgQuDh1wcICDIzZceHHN8dgynQRLkapd1jtdugjnQb5DspK5OIomEc3naMV+4eg2JQ0FSN5t0bsmfdAcKKhvHKt0MICPJOsfdz51CgDHjvGrX54/Rpj1l4gKLQN5fZ96azpzl+5XK+1N4blCjJhI7O7Livdv7JZ1s351slPjupdjvTdu/g+31/MbhRE4Y0asqIZi2JT0tjxbEjXq6UDIeDb//aSZjZ7LHoatc0EtLT+O3kCTqUr8Cc/Xu9Qipzvlc1jWVHDvNc46Ye2w1GAxM3vc/EIdNIOHeZDo+1psfwexFC8NzEgXleT9en7ubXGb9jy3DqURYvH0Wl+tHX7IcuT3Vg6087nO4M1+JjmWrOyA9zkMlDpV1WZC/V9W0/73LPbnVdxxxoIiIqnJTLV6nauCJDpzxFyX+5DoimaXw/Zr5HGCM4b2qKUaHuXTW89lEMyg1Vdxw/cArWdBtWnK6T47tj+PHC//728fz8tyhQBrxNuWiebdiIydu3YZRlbKpKj+o1uadiZebs30tM4hUalihJ++gKyJLE8StXcORjFi3hTGcPM5tZc/LE3zbemeg4DfPEbVvQdGhUoiQTOnamXXQ0r69ZTVoOQQpZkriU5j3DtjgcnE5O5Mn6DVly5JBPNaLsaLqOIxfNzqiykby//LXrvpbytcsy6c8P+GPBFoLDgrhnYDu34EFe1G9fi/d/fp3ffviD8KKhNO3SgPgzCRQvH0XpKiXp8Fhr1vywAUmWCAg20+sVzxlyoeLhGLLpVqLDq98NvaFiWzeK7iO0NTgiiHaPtOThl7rnqhF6I1hySLml5VJiNzs7ft3DheMXqdWqqs9kID//HQqUAQd4rnEz+tWpx8nEREqHhmHXVDrMmk6azUaGw8Hs/XupEVmU7x/oSfUikSiyhC0PIWJwpqkfT7xCTFIiM/bsypfxzu60yS1Oxa5pfLFtC0ZFplbRKD7s0CnXkMVy4eHE5BBCNikKdaKKUy48gjkP9eK9P9ZxKOESZcPCKRoUxKYzZzyuzSDLdL6BZJ/cKFutFI+91TNfbVMuX2Vs3885uuMEFeqUZfi0Z3nnwY9Z8sVKNIdK10F3M/jTJxg2dRBdn76bq1dSqda0klfY4d392rB+/hb2/XEQXde5Z2C7W2q8welzfnBYN376chWqQ0WSJF76ZrBPQYqbRftHWzkzPF2LqJmJVrnxv5Hfs2zySjRNQyB4e8FLftGH/zC3dRy4L+yq6o4Nb1yyFK+v+ZWlRw55LPQFKgbea3c33atU5dHF8/nrYqxXTHhOggwG5j7Ui9Hr17IjNn+K4NdL0cBAFEkmNvWq2+grkoRZlknNMbs2Kwq1i0ZRtUgke+IuUjeqOE83aORO4Em12Xhi6UIOXopHcakSjWzZmv516v8j555fXu34LnvXH8BhV5EVmSIlI7hyMdnt7zYFGpm4eazPNPaty3eyb8NBytUsQ4dHWwMQfyYBg8mzPsmtRNd1/lyxi/PHLlKjZdV/TKHn4ql4Xu34LheOXyQoPJB67WrR4v7GtO/bKtc1H9Wh0jXwEdRstdQr1C3H1F0f/yPn6Offo0AKOuRkf3wc/ZcsxO6adUpCIAvJK0oj3WFn/ekY7q9ajW+7P8S4jeuZtfevPGO6TYpC1SKRPFStxj9mwON9xG07NI1UH7PyIMXA4csJ7LoYi0PTOHApniVHDrLikf4UDwkh2Ghkfs8+HLmcQFxqKrWjonIVKP43ObrzhNtHrDpULp2/4iHOICuyz4zKJZN+YdrIH5wzzSATR/48znNfDMxT9OBWIISgSVdvwYibzdg+n3HxpLOKZlpSOqcPnmXUgpeu+zj+KoX/bW7rRJ7saLrOwGWLSbRkkGqzkWqzkWK1kmK1eLU1SBKlXanpRlkm2WK5ZkLO1K7dkSWJHtVrUqlQoTzb5oUzpO/G/2kuWzK4arW6y+c6NI00u52vd273aFelcBFaly13WxhvgOhaZZAV57CSZIlSlYq7RSNkRcYcZKZq44pe+y345Cd3eJwlzcrPX//27530bcj54xfdBbgAL21MX8iKTM+X7nMmEgUaMQUaGTD2kX/yNP3cYgqEAb9qtdJ30Twu+QilM8iyVyajUVZ4pFZtjzZ5mdQ2ZcqSbLGw48J5hBA827AJpr+pdF4iOIRWZcr9rX1zkvOW49A09sTlP4vQFzar3SML8Gbz5twXqdywAqYAIxXrleODVW/xwa9v0e6RlnR9ugNTdnzoM83eFOgpMpxTfCE/rJ+/hafrjuC5Jq+xf+Oha+9wDXau3sOA6sN4tPxgln+9+oaPdz3Ua18To6sPDEaFGi2q5mu/gWP7MnrJqzw74XEmbfvAX2b2P06B8IH7qomSiSIE4WYzVywW0HXqRBXnzTZ3cS4lmcSMDFqXLceFqyn0X7LQZ0JMzsXIYIOBV5q3YsyG373EIySgZlQx9uXQp/y3kIWgblRxqkVGUj6iEB0rVKRESP4jH2aNmc8P7y0EdDo82prh0571WRM7N3Rd548FWzlz6Bw1WlR11yC5GexZf4A3u41DVmQcNgfDvnqaDo+2yff++zcdZmSnd91RKwaTQr93HqbdI62IiArj2zfnsGv1PirULcfgzx4n6BrZi7ExcTxVa4T7qcAUaGL04pdpcLfvkNWbTUaahcnPT2f/xsNUalCeF6Y85VUm18+dwz+iSi+EuAf4HJCBabquf5BX++s14Lqu8/LqlSw6fDDf+8hCEGgwoOng0FRXaJ12SwzuP41Rlhndpj29al7bkB7adoyX2492GyRzkIkR056lba8W+f6+L4fPYMX/fsOSbsUUYHJX0btRDm07xk9TVyEJyan807QSJSt663kCnNhziiUTV2AwGyhTrRQHNx+hTLWSqKrO7PcWeLgdFIOMDhQtU4TL565gs9pRjAo1mlVm/LrReZ7ThkXbGD9gclYpWgGPvd2TfvnUxSwo7Fqzj19nrKNQ8XB6j3yA0EJ/X1LPzz/HTV/EFELIwGTgbuAcsF0IsUzX9fxb22uw5dxZfjl+9Lr2UXWdqzZvSbL/IjZV5Z31a+hYoSIRAXn7wONOxSNnq4Ftt9q5GJN33e7s6LrO0skr3en41nQrs8cuumEDfmzXSfeNRZYltq/czfTDn/tse/bIeYa1fNOjSh+A0WygZMXiGAOMHp9lLqbGnsiS1HPYHOzbeNipqJTHWkXpKiU8Sg+YA01e9dQLOrt+28vb3Z36o4pRYfPSHfxv3ydeFSn93L7ciA+8MXBc1/WTuq7bgLnA38tXzoW1MSeuGf53p2OQZLaeP3vNdtWaVvaoQ64YFOq2uz4hACWHgLDRbMylZf5ZP29zVlEnVcOSbuXQ1mM+225a4qzElxObxc7pw+do06s5woeIc04iioZdMzqjXI3SDJk4AHOQGcWo0G1QR1r3aJrnPgWNldPXuotjOWwOrsQmcubQ+Vt8Vn6uhxsx4CWB7JbjnGubB0KIp4UQO4QQOy5dQzghJ4UCAvIsterH6bcPN127HkZU2Ug+/PUtarasSpVGFXlj7ovXleIthOCZTx/HFGgkMDQAU6CJIZ8/cQNn7iQsMtRjwVJ1aIQU8q1DGVo4BMXoezzIssSLUwfxc/oPNO5Sz60elHX+zqiYkIggRi95JV/n1nlge366OotfLHMYNL7ffy4kLzwqDMWQ1Z+qQyUkwu9nL0j8bR+4EKIn0EnX9Sdd7x8DGuu6PjS3fa7XB34x9SodZn17zRTynGSm2f/XETg1Odf1G4j8Nyon/h1i9p/h3JELVGpQ3q1efyNkpFl4sdVb7jrfHfu14YUvn/bZ1lnCdTQn95xyJqvoOgazAYdd5cVsi56qqvLH/C18++ZcLscmIoCm9zVk6KSBhEQEX9fC7X+Z5IQUhjZ9naRLyah2lV6v3v+f8/H/V7jpi5hCiGbAO7qud3K9fw1A1/Vxue3zd6JQdsVe4LU1v3L8ymWCDEZKhIRwMikRXdcJN5u5nJFVGyLUZGJsu7vZHRvL7P17sKoqtYtGYZRl/ryQ/0dDGYF6E5c9ZSFoWqo0286dxZFLfwucyUQ5KxYaJAmBwKapGLPVGRdAs1Kl+fjuzn9LXu12QnWoxOw/gznITKlKvhcv3W1VldMHzqEYFYqULMTZIxcoUrKQT61KTdM4tf8sskGmTNWS/7kZ9M3AZrVz+sBZQgoF35Qbsp9/hn/CgCvAUaA9cB7YDjyi6/qB3Pa5kVR6u6qiuJThVZcRkyUJh6YhcC5eZne3aLqOqmlukQNN08hwOAg0GEiz2dB0HZOiYFIU7KqKqmmouo5BljFIEjqQbrNhkCQk1/faVRWzopBut5NqsxCoGDEoirs9gM3hwOZwEGA0IoRA0zRMiuKW1spwODAI4TbUsuv7ZElCEgKbqiI5+xdN1901ye2ahlGWsasqkhDo8Lfqlfvx46fgcdOjUHRddwghngNW4QwjnJ6X8b5RsqvNZHcXZBqxnJ5RSQikbPtIkkSQ0bnoFmzKkTQiy15qNsJHu8zvCjIa3cfKiWI0Epj9s2zHFa4QRwCD4rvrs9+EZB/bc1Pd8ePHz53HDdVC0XV9BbDiJp2LHz9+/Pi5DvzP4H78+PFTQPEbcD9+/PgpoPgNuB8/fvwUUPwG3I8fP34KKP9qNUIhxCXg9N/cvQiQcBNPpyDj74ss/H3hxN8PWfwX+6Ksrute6ib/qgG/EYQQO3zFQd6J+PsiC39fOPH3QxZ3Ul/4XSh+/PjxU0DxG3A/fvz4KaAUJAP+9a0+gdsIf19k4e8LJ/5+yOKO6YsC4wP348ePHz+eFKQZuB8/fvz4yYbfgPvx48dPAaVAGHAhxD1CiCNCiONCiJG3+nxuBkKI0kKIdUKIQ0KIA0KIF1zbCwkhVgshjrl+R7i2CyHERFcf7BVC1M92rP6u9seEEP2zbW8ghNjn2meiuI0LYgshZCHEbiHEctf7aCHENtc1/SiEMLq2m1zvj7s+L5ftGK+5th8RQnTKtr3AjB8hRLgQYoEQ4rBrbDS7g8fEi67/jf1CiDlCCPOdOi5yRdf12/oHZ1XVE0B5wAjsAarf6vO6CddVHKjveh2Cs7Z6deAjYKRr+0jgQ9frLsAvOCvdNgW2ubYXAk66fke4Xke4PvsTaOba5xeg862+7jz6YzgwG1juej8P6O16PRV41vV6MDDV9bo38KPrdXXX2DAB0a4xIxe08QPMBJ50vTYC4XfimMApzxgDBGQbD4/fqeMit5+CMAP/x8WTbwW6rsfqur7L9foqcAjnoO2O858Y1+/7Xa+7A9/pTrYC4UKI4kAnYLWu61d0XU8EVgP3uD4L1XV9i+4cyd9lO9ZthRCiFNAVmOZ6L4B2wAJXk5z9kNk/C4D2rvbdgbm6rlt1XY8BjuMcOwVm/AghQoHWwDcAuq7bdF1P4g4cEy4UIEA4xWMCgVjuwHGRFwXBgOdLPLkg43rcqwdsA6J0XY8Fp5EHMnWucuuHvLaf87H9duQz4BVAc70vDCTpup6pL5f93N3X6/o82dX+evvndqQ8cAn41uVOmiaECOIOHBO6rp8HxgNncBruZGAnd+a4yJWCYMB9+ej+M7GPQohgYCEwTNf1lLya+tim/43ttxVCiG5AvK7rO7Nv9tFUv8ZnBbofXChAfeBLXdfrAWk4XSa58Z/tC5efvztOt0cJIAjo7KPpnTAucqUgGPBzQOls70sBF27RudxUhBAGnMb7B13XF7k2x7kedXH9jndtz60f8tpeysf2240WwH1CiFM4H2Pb4ZyRh7sencHz3N3X6/o8DLjC9ffP7cg54Jyu69tc7xfgNOh32pgA6ADE6Lp+Sdd1O7AIaM6dOS5ypSAY8O1AJdfqsxHnAsWyW3xON4zLP/cNcEjX9QnZPloGZEYN9AeWZtvezxV50BRIdj1OrwI6CiEiXLOWjsAq12dXhRBNXd/VL9uxbht0XX9N1/VSuq6Xw/m3Xavrel9gHdDD1SxnP2T2Tw9Xe921vbcrGiEaqIRzwa7AjB9d1y8CZ4UQVVyb2gMHucPGhIszQFMhRKDrXDP74o4bF3lyq1dR8/ODc7X9KM5V4zdu9fncpGtqifORbS/wl+unC06/3RrgmOt3IVd7AUx29cE+oGG2Yw3AuThzHHgi2/aGwH7XPpNwZd7erj9AW7KiUMrj/Ec7DswHTK7tZtf7467Py2fb/w3XtR4hW3RFQRo/QF1gh2tcLMEZRXJHjglgNHDYdb6zcEaS3JHjIrcffyq9Hz9+/BRQCoILxY8fP378+MBvwP348eOngOI34H78+PFTQPEbcD9+/PgpoPgNuB8/fvwUUPwG3I8fP34KKH4D7sePHz8FlP8DquiNuijWciYAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#列一（飞行公里）、列二（玩视频游戏时间比）\n",
    "fig = plt.figure()\n",
    "ax = fig.add_subplot(111)\n",
    "ax.scatter(datingDataMat[:,0], datingDataMat[:,1], 15.0*array(datingLabels), 15.0*array(datingLabels) )\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 准备数据：归一化数值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(array([[0.44832535, 0.39805139, 0.56233353],\n",
       "        [0.15873259, 0.34195467, 0.98724416],\n",
       "        [0.28542943, 0.06892523, 0.47449629],\n",
       "        ...,\n",
       "        [0.29115949, 0.50910294, 0.51079493],\n",
       "        [0.52711097, 0.43665451, 0.4290048 ],\n",
       "        [0.47940793, 0.3768091 , 0.78571804]]),\n",
       " array([9.1273000e+04, 2.0919349e+01, 1.6943610e+00]),\n",
       " array([0.      , 0.      , 0.001156]))"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def autoNorm(dataSet):\n",
    "    minVals = dataSet.min(axis=0)\n",
    "    maxVals = dataSet.max(0)\n",
    "    ranges = maxVals - minVals\n",
    "    normDataSet = zeros(shape(dataSet))\n",
    "    m = dataSet.shape[0]\n",
    "    normDataSet = dataSet - tile(minVals, (m,1))\n",
    "    normDataSet = normDataSet / tile(ranges, (m,1))\n",
    "    return normDataSet, ranges, minVals\n",
    "    \n",
    "autoNorm(datingDataMat)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 测试算法：作为完整程序验证分类器"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "the classifier came back with:3,the real answer is:3\n",
      "the classifier came back with:2,the real answer is:2\n",
      "the classifier came back with:1,the real answer is:1\n",
      "the classifier came back with:1,the real answer is:1\n",
      "the classifier came back with:1,the real answer is:1\n",
      "the classifier came back with:1,the real answer is:1\n",
      "the classifier came back with:3,the real answer is:3\n",
      "the classifier came back with:3,the real answer is:3\n",
      "the classifier came back with:1,the real answer is:1\n",
      "the classifier came back with:3,the real answer is:3\n",
      "the classifier came back with:1,the real answer is:1\n",
      "the classifier came back with:1,the real answer is:1\n",
      "the classifier came back with:2,the real answer is:2\n",
      "the classifier came back with:1,the real answer is:1\n",
      "the classifier came back with:1,the real answer is:1\n",
      "the classifier came back with:1,the real answer is:1\n",
      "the classifier came back with:1,the real answer is:1\n",
      "the classifier came back with:1,the real answer is:1\n",
      "the classifier came back with:2,the real answer is:2\n",
      "the classifier came back with:3,the real answer is:3\n",
      "the classifier came back with:2,the real answer is:2\n",
      "the classifier came back with:1,the real answer is:1\n",
      "the classifier came back with:3,the real answer is:2\n",
      "the classifier came back with:3,the real answer is:3\n",
      "the classifier came back with:2,the real answer is:2\n",
      "the classifier came back with:3,the real answer is:3\n",
      "the classifier came back with:2,the real answer is:2\n",
      "the classifier came back with:3,the real answer is:3\n",
      "the classifier came back with:2,the real answer is:2\n",
      "the classifier came back with:1,the real answer is:1\n",
      "the classifier came back with:3,the real answer is:3\n",
      "the classifier came back with:1,the real answer is:1\n",
      "the classifier came back with:3,the real answer is:3\n",
      "the classifier came back with:1,the real answer is:1\n",
      "the classifier came back with:2,the real answer is:2\n",
      "the classifier came back with:1,the real answer is:1\n",
      "the classifier came back with:1,the real answer is:1\n",
      "the classifier came back with:2,the real answer is:2\n",
      "the classifier came back with:3,the real answer is:3\n",
      "the classifier came back with:3,the real answer is:3\n",
      "the classifier came back with:1,the real answer is:1\n",
      "the classifier came back with:2,the real answer is:2\n",
      "the classifier came back with:3,the real answer is:3\n",
      "the classifier came back with:3,the real answer is:3\n",
      "the classifier came back with:3,the real answer is:3\n",
      "the classifier came back with:1,the real answer is:1\n",
      "the classifier came back with:1,the real answer is:1\n",
      "the classifier came back with:1,the real answer is:1\n",
      "the classifier came back with:1,the real answer is:1\n",
      "the classifier came back with:2,the real answer is:2\n",
      "the classifier came back with:2,the real answer is:2\n",
      "the classifier came back with:1,the real answer is:1\n",
      "the classifier came back with:3,the real answer is:3\n",
      "the classifier came back with:2,the real answer is:2\n",
      "the classifier came back with:2,the real answer is:2\n",
      "the classifier came back with:2,the real answer is:2\n",
      "the classifier came back with:2,the real answer is:2\n",
      "the classifier came back with:3,the real answer is:3\n",
      "the classifier came back with:1,the real answer is:1\n",
      "the classifier came back with:2,the real answer is:2\n",
      "the classifier came back with:1,the real answer is:1\n",
      "the classifier came back with:2,the real answer is:2\n",
      "the classifier came back with:2,the real answer is:2\n",
      "the classifier came back with:2,the real answer is:2\n",
      "the classifier came back with:2,the real answer is:2\n",
      "the classifier came back with:2,the real answer is:2\n",
      "the classifier came back with:3,the real answer is:3\n",
      "the classifier came back with:2,the real answer is:2\n",
      "the classifier came back with:3,the real answer is:3\n",
      "the classifier came back with:1,the real answer is:1\n",
      "the classifier came back with:2,the real answer is:2\n",
      "the classifier came back with:3,the real answer is:3\n",
      "the classifier came back with:2,the real answer is:2\n",
      "the classifier came back with:2,the real answer is:2\n",
      "the classifier came back with:3,the real answer is:1\n",
      "the classifier came back with:3,the real answer is:3\n",
      "the classifier came back with:1,the real answer is:1\n",
      "the classifier came back with:1,the real answer is:1\n",
      "the classifier came back with:3,the real answer is:3\n",
      "the classifier came back with:3,the real answer is:3\n",
      "the classifier came back with:1,the real answer is:1\n",
      "the classifier came back with:2,the real answer is:2\n",
      "the classifier came back with:3,the real answer is:3\n",
      "the classifier came back with:3,the real answer is:1\n",
      "the classifier came back with:3,the real answer is:3\n",
      "the classifier came back with:1,the real answer is:1\n",
      "the classifier came back with:2,the real answer is:2\n",
      "the classifier came back with:2,the real answer is:2\n",
      "the classifier came back with:1,the real answer is:1\n",
      "the classifier came back with:1,the real answer is:1\n",
      "the classifier came back with:3,the real answer is:3\n",
      "the classifier came back with:2,the real answer is:3\n",
      "the classifier came back with:1,the real answer is:1\n",
      "the classifier came back with:2,the real answer is:2\n",
      "the classifier came back with:1,the real answer is:1\n",
      "the classifier came back with:3,the real answer is:3\n",
      "the classifier came back with:3,the real answer is:3\n",
      "the classifier came back with:2,the real answer is:2\n",
      "the classifier came back with:1,the real answer is:1\n",
      "the classifier came back with:3,the real answer is:1\n",
      "the total error rate is 0.050000\n"
     ]
    }
   ],
   "source": [
    "def datingClassTest():\n",
    "    hoRatio = 0.1\n",
    "    datingDataMat, datingLabels = file2matrix('datingTestSet2.txt')\n",
    "    normMat, ranges, minVals = autoNorm(datingDataMat)\n",
    "    m = normMat.shape[0]\n",
    "    numTestVecs = int(m*hoRatio)\n",
    "    errorCount = 0.0\n",
    "    #用前100个数据作为测试集，后900个作为训练集进行测试\n",
    "    for i in range(numTestVecs):\n",
    "        classifierResult = classify0(normMat[i,:], normMat[numTestVecs:m,:],datingLabels[numTestVecs:m],3)\n",
    "        print(\"the classifier came back with:%d,the real answer is:%d\" % (classifierResult, datingLabels[i]))\n",
    "        if (classifierResult != datingLabels[i]):errorCount += 1.0\n",
    "    print(\"the total error rate is %f\" %(errorCount/float(numTestVecs)))\n",
    "datingClassTest()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 使用算法：构建完整可用系统"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "percentage of time spent playing video games?10\n",
      "frequent flier miles earned per year?10000\n",
      "liters of ice cream consumed per year?0.5\n",
      "You will probably like this person: in small doses\n"
     ]
    }
   ],
   "source": [
    "def classifyPerson():\n",
    "    resultList = ['not at all', 'in small doses', 'in large doses']\n",
    "    percentTats = float(input(\"percentage of time spent playing video games?\"))\n",
    "    ffMiles = float(input(\"frequent flier miles earned per year?\"))\n",
    "    iceCream = float(input(\"liters of ice cream consumed per year?\"))\n",
    "    datingDataMat, datingLabels = file2matrix('datingTestSet2.txt')\n",
    "    normMat, ranges, minVals = autoNorm(datingDataMat)\n",
    "    inArr = array([ffMiles, percentTats, iceCream])\n",
    "    classifierResult = classify0((inArr-minVals)/ranges, normMat, datingLabels, 3)\n",
    "    print(\"You will probably like this person:\", resultList[classifierResult-1])\n",
    "classifyPerson()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
